Привет, я не могу вставить узел спереди в связанный список. С++. У меня есть код, можешь посмотреть?
класс типа {
общественный:
NodeType(int = 0); / / конструктор со значением по умолчанию для
// информационное поле
int info; / / данные
NodeType * nextPtr; / / указатель на следующий узел в списке
};
// Конструктор
Типа::типа(данных int )
{
информация = данные;
nextPtr = 0;
}
// Вопрос 4-Функция Вставки
void insert(int value, NodeType *head) {
Типа *currentPtr = нового типа;
currentPtr- & gt;info = значение;
if (head = = NULL) {
currentPtr- & gt;nextPtr = head;
head = currentPtr;
}
currentPtr - > nextPtr = temp;
temp = currentPtr;
}
Что я уже пробовал:
тап_п() {
Типа *currentPtr = нового типа;
NodeType *head = NULL;
int value=0;
выбор char;
в то время как (правда) {
cout << " что бы вы хотели сделать: "<< " \n";
соиь <&ЛТ; "1. Вставить" &ЛТ;&ЛТ; "\Н";
cin > & gt; выбор;
переключатель (выбор)
{
случай "1":
cout << "пожалуйста, введите значение-целое число"< & lt; "\n";
Cin> & gt; значение;
вставка (значение, головка);
перерыв;
}
Richard MacCutchan
Проблема в том, что ваш класс Node ссылается на элементы, которые находятся в переменных основного метода и, следовательно, находятся вне его контроля. Поэтому, если основной метод изменит указатель головы, все ваши узлы будут потеряны. Ваш тип узла должен содержать прямые и обратные ссылки, но именно основной код должен устанавливать их при добавлении и удалении узлов.