|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.08.2011, 20:46 | #1 |
Регистрация: 25.05.2011
Сообщений: 7
|
связанные списки
Здравствуйте, в С++ есть такая тема как "связанные списки". Ни как не могу с ней разобраться. не могу понять, что с собой представляет связанный список. помогите пожалуйста понять это или подскажите книгу.
|
26.08.2011, 20:52 | #2 |
Регистрация: 25.05.2011
Сообщений: 7
|
помогите разбиратся в этом программе. не могу понять зачем так много указателей и для чего они?
class list { public: list *head; //начало списка list *tail; //конец списка list *next; // следующий элемент int num; //число для хранения list() {head=tail=next=0;} virtual void store(int i)=0; virtual int retrieve()=0; }; class queue: public list { void store(int i); int retrieve(); }; void queue::store(int i){ list *item; item = new queue; if(!item) cout << "ошибка выделения памяти." << endl; item->num=i; if(tail) tail->next=item; tail=item; item->next=NULL; if(!head) head=tail; } int queue ::retrieve() { int i; list *p; if(!head) cout << "empty" << endl; i=head->num; p=head; head=head->next; delete p; return i; } class stackublic list { void store(int i); int retrieve(); }; void stack ::store(int i) { list *item; item =new stack; if(!item) cout << "ошибка выделения памяти." << endl; item->num=i; if(head) item->next=head; head=item; if(!tail) tail=head; } int queue ::retrieve() { int i; list *p; if(!head) cout << "empty" << endl; i=head->num; p=head; head=head->next; delete p; return i; } |
26.08.2011, 23:07 | #3 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Вроде их называют связными списками, ну да ладно. Каждый элемент списка - это совокупность некоторых данных и ссылки на следующий элемент списка (такие списки называются односвязными; если добавить ссылку на предыдущий элемент - то двусвязными). Отсюда и обилие указателей - именно они и представляют собой ссылку на следующий/предыдущий элемент. Банальный пример структуры:
Код:
Updated В вашем примере кода все непросто для изучения, там создается класс списка и различные варианты (стек, очередь) структур данных. Если хотите, могу по-быстрому налопатить простенький односвязный список с объяснением, как все работает, это несложно.
Форматируйте код, будьте людьми.
Последний раз редактировалось Granus; 26.08.2011 в 23:10. |
27.08.2011, 10:08 | #4 |
Регистрация: 25.05.2011
Сообщений: 7
|
помогите если не трудно. эта программа слишком сложно для меня.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связанные списки ((((((((( !!!!!! | cj_loman | Помощь студентам | 2 | 27.05.2011 07:19 |
связанные списки | nikulia | Microsoft Office Excel | 4 | 20.02.2011 23:56 |
Связанные списки. С++ | S1av0k | Общие вопросы C/C++ | 1 | 21.10.2010 23:08 |
связанные списки | Proger_1 | Общие вопросы C/C++ | 1 | 28.05.2010 22:11 |
Связанные списки | Fezdipekla | Microsoft Office Access | 3 | 02.04.2010 22:07 |