| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Списки |
| Автор: peter86 3.6.2008, 19:39 |
| Помогите написать процедуру, создающую кольцевой двунаправленный список. |
| Автор: baldina 3.6.2008, 19:45 |
| что значит "создающую"? тебе нужно определить 1. структуру данных (на основе record), содержащую данные и указатели на предыдущий-следующий узел списка 2. написать процедуру инициализации таким образом, что бы голова указывала на хвост и наоборот. для списка из одного элемента он будет указывать сам на себя 3. написать процедуры, добавляющие/удаляющие элемент списка 4. процедуру обхода списка. вообще-то кольцевой список предопределенного размера можно создать на основе массива сам что-нить попробовал? какие возникли проблемы? |
| Автор: peter86 3.6.2008, 20:06 |
| Написать процедуру, например - Procedure Create(var L:DP); Где DP = ^DType; DType = record Inf:Integer; Next:DP; Prev:DP; end; В этой процедуре с клавиатуры вводятся N чисел, которые становятся элементами списка; В результате L указывает на начало списка. |
| Автор: volvo877 3.6.2008, 21:02 | ||
Практически идентично созданию обычного двухсвязного списка, только добавляется еще установка first^.prev и last^.next:
|
| Автор: peter86 3.6.2008, 21:29 |
| volvo877, а разве в двусвязном кольцевом списке prev первого элемента не ссылается на последний? И еще может есть у кого-нибудь процедуры добавления и удаления элемента, после указанного. Например Procedure Del(P:DP; N:Integer); Где P - элемент списка, после которого следует добавить N. |
| Автор: volvo877 3.6.2008, 22:02 | ||
|