создание связанного списка в c ++

0

Я пытаюсь создать связанный список в c++, который вставляет элементы из конца. У меня есть следующий код

#include<iostream>

using namespace std;

//Define a structure
    struct Node{
        int info;
        Node* next;
    } *start, *newptr, *current, *ptr;

Node* createNewNode(int);
void insertEnd(Node*);
void display(Node*);

int main(){
    char ch='y';
    while(ch=='y')
    {
        int inf;
        //Initialize the start pointer to NULL
        start = NULL;

        //Prompt the user for information
        cout<<"Enter the information -> ";
        cin>>inf;

        //Call the function to create a new node
        newptr = createNewNode(inf);
        cout<<"New node created successfully \n";

        //Insert the node in the beginning
        insertEnd(newptr);

        //Traversal
        display(start);

        //Asks the user for input
        cout<<"Want to enter more -> ";
        cin>>ch;
    }


    return 0;

}

Node* createNewNode(int a)
{
    ptr = new Node;
    ptr->info = a;
    ptr->next = NULL;
    return ptr;
}

void insertEnd(Node* p)
{
    if(start == NULL){
        start = p;
        current = p;
    }else {
        current->next = p;
        current = p;
    }
}

void display(Node* p)
{
    while(p!=NULL){
        cout<<p->info<<"->";
        p=p->next;
    }
}

Когда я компилирую программу, она работает нормально, но не отображает полный список. Он отображает только номер, недавно добавленный пользователем в список. Что не так с этим кодом?

  • 0
    У вас есть список в обратном направлении ...
  • 0
    вы пробовали отладку?
Показать ещё 1 комментарий
Теги:
list
linked-list

1 ответ

2

Ваше начало списка сбрасывается на каждой итерации.

int main(){
    char ch='y';
    while(ch=='y')
    {
        int inf;
        //Initialize the start pointer to NULL
        start = NULL; // remove this line and do it before the while loop
  • 0
    Спасибо друг! Я хотел бы спросить еще одну вещь. Когда я запускаю программу, окно приглашения cmd запускается мгновенно, но программа инициализируется через несколько секунд, скажем, 10-15 секунд. Я попытался скомпилировать с CodeBlocks, DevC ++ и MSVC ++.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню