2015-09-29 2 views
-1

Я новичок в C++, и мне сложно вникать в вставку в связанном списке. Вот моя вставка, над которой я работал до сих пор, у меня просто возникают проблемы с добавлением нескольких узлов.Связанный список - вставить более одного узла

struct node *temp, *x, *y; 
temp = create_node(a, b, c); 
x = begin; 
if (begin == NULL) 
{ 
    begin = temp; 
    temp->next = NULL; 
} 
else 
{ 
    y = temp; 
    temp->next = NULL; 
} 
+0

Добро пожаловать в переполнение стека! Пожалуйста, ** ** [править] ** ваш вопрос с помощью [mcve] или [SSCCE (Short, Self Contained, Correct Example)] (http://sscce.org) – NathanOliver

+0

В C++ вы можете использовать [std :: list] (http://en.cppreference.com/w/cpp/container/list) –

+0

Я использую свои собственные. Я просто пытаюсь выяснить, как правильно вставить –

ответ

0

Последняя часть вашего кода (вставка, когда список не пуст) неправильно корректирует указатели. Следующий код исправляет проблему:

struct node *temp; 
temp = create_node(a, b, c); 
if (begin == NULL) 
{ 
    begin = temp; 
    temp->next = NULL; 
} 
else 
{ 
    temp->next = begin; 
    begin = temp; 
} 
+0

Я вижу, что я сделал ... Спасибо –

+1

, когда вы имеете дело с такими операциями, просто попробуйте нарисовать узлы и указатели на листе бумаги и выполнить операцию в теме. Обычно легче видеть, какие указатели вы должны изменить. – redobot