![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
biba |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Женский Репутация: ![]() ![]() ![]() |
AAAAAAA Почему закрыли мою тему!?
![]() Вопрос в том, что нужно создать дерево из СПИСКА, а не из файла ( из файла- это уже другой пункт моей курсовой и я не думаю, что два разных задания решаются одной программой ![]() Написано сумбурно, но как могу так и пишу, по другому это я объяснить не могу. ![]() |
![]() ![]() |
BlackShadow |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата без головного элемента что-то новое... список он на то и список, чтобы начинаться и заканчиваться... Ладно, попробую описать работу со списком. ООП, я так понял тебе не знакомо, придётся извращаться... Код Type {Структура описывает элемент списка} PListRec=^TListRec; TListRec=Record Key:Integer; {Ключ} Item:String; {для удобства возбмём элементы спсиска - строки} Next:PListRec {Следующий элемент} End; {Бредовая функция, но преподы её любят. Создаёт пустой список. Мы будем обозначать список Nil'ом} Function List_Create:PListRec; Begin CreateList:=Nil End; {Добавляет элемент Item с ключом Key в список List} Procedure List_Add(Var List:PListRec;Key:Integer;Item:String); Var p:PListRec; Beign New(p); p^.Key:=Key; p^.Item:=Item; p^.Next:=List; List:=p End; {Очищает список освобождая всю память} Procedure List_Clear(Var List:PListRec); Var p:PListRec Begin While List<>Nil Do Begin p:=List^.Next; Dispose(List); List:=p End End; {Проверяет, есть ли элемент с ключом Key в списке. Если есть, то возвращает указатель на элемент списка с этим ключом, иначе - Nil} Function List_Contains(Key:Integer;List:PListRec):PListRec; Var p:PListRec; Begin p:=List; While p<>Nil Do If p^.Key=Key Then Begin Contains:=p; Exit End Else p:=p^.Next; Contains:=Nil End; {Доработанная функция List_Add, которая проверяет, есть ли элемент с таким ключом в списке. Если есть, то изменяет его значение, иначе добавляет его.} Procedure List_Set(Var List:PListRec;Key:Integer;Item:String); Var p:PListRec; Begin p:=Contains(Key); If p=Nil Then Add(List,Key,Item) Else p^.Item:=Item End; Думаю, что это всё, что может понадобиться для работы со списком в данном контексте... Могут быть описки, т. к. пишу без компилятора... Остальное чуть позже... Надо же мне хотя бы вид делать, что работаю ![]() |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 8:24 |