
25.07.2009, 15:46
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
С нами:
9705420
Репутация:
21
|
|
Я понимаю листы так:
Он состоит из головы, узла с данными и хвоста. Но я не могу понять роли каждого из элементов. Ну на пример, я вижу роли так - в узле содержатся данные и адрес следующего узла. В голове содержится адрес первого узла. В хвосте содержится адрес головы или как?
В общем посидел, подумал поэкспериментировал...
Код:
#include <iostream>
using namespace std;
class List
{
public:
List* next;
int data;
};
class Head
{
public:
List* next;
};
/*class Tail
{
public:
List* last;
};*/
void main()
{
// начало списка, создание первого узла и головы
List* Node = new List;
Head* head = new Head;
//Tail* tail = new Tail;
head->next = Node;
int i = 1;
//Добавление:
while(1)
{
cout << "data #" << i << " = ";
cin >> Node->data;
i++;
if(!Node->data)
{
//tail->last = Node;
break;
}
Node->next = new List;
Node = Node->next;
}
cout << head->next->data << endl;
}
1. Правильный ли я лист создал?
2. Как мне вывести все значения в листе, начиная с головы?(данный вариант вывода показывает только одно значение с первого узла, хотя в отладке я вижу полную иерархию всех значений)
3. Если лист правильный, то можно ли его оптимизировать?
4. Что вообще нужно с хвостом делать?
Последний раз редактировалось horlyk; 25.07.2009 в 16:50..
|
|
|