![]() |
Помогите со "Связанными списками" в Pascal
буду очень признателен тому, кто может помочь с программой на Pascal с использованием связанных списков. Програма должна быть неочень сложной. А просто показывать суть связанных списков. Заранее благодарен!
|
опиши что конкретно ты не понимаешь
|
Связанный список - список (структура данных), элементы которого не обязательно расположены в памяти последовательно. Доступ к следующему элементу осуществляется с помощью указателя, хранящегося в предыдущем элементе списка. У последнего элемента указатель имеет специальное значение, по которому определяется конец списка. Список может быть двунаправленным, когда каждый его элемент содержит ссылки как на следующий, так и на предшествующий элементы.
Вот на ету тему мне нужна простенькая програма |
Код:
Type |
Это несовсем то что я имел ввиду. Насколько я понимаю это пример работы с указателями. Если можно чтонить по связанным спискам.
|
Rifle
А связанный список, вообще-то, через эти самые указатели и реализуется. |
Rifle
---------------------- ---------------------- ---------------------- | data | pointer | -> | data | pointer | -> | data | nil | ---------------------- ---------------------- ---------------------- вот структура простейшего однонаправленного списка |
Цитата:
|
Ну связанный список реализуется через указатели ето да! Но в том коде что ты написал происходит просто помешение и удаление значения из стека. Или я что-то нетак понял???
|
Вообщем с тобой все ясно. Что я могу сказать - жди пока кто-нибудь запостит код попадающий именно под твое представление о связанных списках.
|
:(
|
Эт конечно всё интересно (списки) только одна заковыка: может статься так, что у этого списка будет не просто "лестница", а "дерево лестниц". О когда ты попляшешь.
читал где-то год назад про организацию хранения данных, структуированных данных, если мне моя память не изменяет, то ищи "дерево ноды оракл" в яндексе, там тебе будет всё (ВСЁ) объяснено. Постараюсь и я найти, а пока - прочти мой пост и пошевели руками по клаве, не найдёшь - кинь сюда сообщение - помогу найти |
Rifle
Цитата:
Вот, например один из возможных вариантов списка -- программа, создающая и читающая список чисел: type p_subject=^subject; subject=record number:longint; next: p_subject; end; var top: p_subject; run: p_subject; buf: longint; i:integer; begin for i:= 1 to 5 do begin buf:=i; new(run); run^.number:=buf; run^.next:=top; top:=run; end; while run<>nil do begin writeln(run^.number); run:=run^.next; end; end. Из списка можно удалить любой элемент, можно так же и добавить элемент в любое место списка. Существует так же возможность сортировать данные в списке по какому-либо признаку. |
Цитата:
и из-за отсутствия отступов трудно что-либо понять. type p_subject=^subject; subject=record number:longint; next: p_subject; end; var top: p_subject; run: p_subject; buf: longint; i:integer; begin { Не хватало!} top:=nil; {!!} for i:= 1 to 5 do begin buf:=i; new(run); run^.number:=buf; run^.next:=top; top:=run; end; while run<>nil do begin writeln(run^.number); run:=run^.next; end; end. |
aleks_k2 :нуда, это я просто невнимательно набирал...
|
Кстати как RaZEr смог поместить программу с отступами?
|
...в догонку к своему прошлому сообщению:
1. искать надо "Дерево структура графы SQL" 2. Если не хочется искать, то просто кликни сюда . С НАСТУПАЮЩИМ РОЖДЕСТВОМ ВСЕХ!!! |
| Часовой пояс GMT +4, время: 15:31. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.