Форум программистов, компьютерный форум CyberForum.ru

Двунаправленный кольцевой список (удаление узлов) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество знаков препинания в тексте http://www.cyberforum.ru/cpp-beginners/thread863538.html
Дан текст. Определить, сколько символов знаков препинания в нем (точка, запятая, двоеточие, тире, и пр.).
C++ Определить количество букв в предложении Дано предложение. Определить, сколько раз встречается буква let в данном предложении (let задается с клавиатуры). http://www.cyberforum.ru/cpp-beginners/thread863536.html
Посчитать количество символов в слове C++
Дано название футбольной команды. Подсчитайте, сколько в нем символов.
Удаление списка C++
Программа добавляющая заявки на авиабилеты. Есть функции добавления и вывода всех заявок, помогите сделать удаление ВСЕХ заявок. //#include "stdafx.h" #include <cstdio> #include <conio.h> #include <clocale> #include <windows.h> #include <stdlib.h> #include <iostream>
C++ Слова с похожими буквами http://www.cyberforum.ru/cpp-beginners/thread863516.html
Как выводи слова, которые имеют разные буквы? То есть, допустим есть слова: афина, авто, ручка, мел. Как сделать так, чтобы алгоритм выводил слово, которое имеет уникальные буквы( в данном случае это - мел)?
C++ Ввод символов в массив Как ввести в массив 30 символов, которые будут вводить без пробелов и переносов строк, то есть строку вида: 123456789...n , нужно привести к виду: char mass mass={1}{2}{3}{4}{5}{6}{7}{8}{9}...{n} подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.05.2013, 17:29     Двунаправленный кольцевой список (удаление узлов)
MarVaL, Не знаю разбирай при создании List list у тебя все указатели должны нулями быть
при добавлении элемента list.addNode просто проверяй если cur=0, то значит список пустой cur=new
Попробуй разделить на класс List и на List_intarface допустим так (либо Node и List)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class List
{
Link* next;
Link* prev;
int data; //данные
public:
List(int d):next(0),prev(0),data(d){};
};
class List_interface
{
List* cur; //Хранит указатель на элемент
public:
//...
//тут пошли методы для работы с классом. add(), del(), print() и. т. д.
};
Так бы было б более правильно

Попробуй такой метод:
C++
1
2
3
4
5
6
7
8
9
10
void List::addNode(dataList d) {
    List *node = new List(d);
    if(curr==0) {//пустой список
        curr=node;
    } else {//есть елементы
        curr->next=node;
        node->prev=curr;
        curr=node;
    }
}
Так должно работать.

Добавлено через 2 минуты
Это для двусвязного списка не кольцевой.
 
Текущее время: 04:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru