Помощь - Поиск - Пользователи - Календарь
Полная версия: Создание списков
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Atreides
Список я написал. Но народ подскажите, пожалуйста, как вот для таково односвязного списка стек сделать процедуру добавления и удаления элемента. И объясните, как производится добавление и откуда должно происходить удаление, если добавлять нужно с головы. Не это понятно, что в стеке добавление и удаление должно происходить только с одного и того же места, но какой элемент будет удаляться? Это мой список, где id – это номер, а str – значение элемента.
Doit_Item – элемент, над которым производят действие. Остальное думаю понятно.

Код
uses
 SysUtils;

Type
Steck=^nsteck;
Nsteck=record
Id:cardinal;
Str:string[99];
Next:steck;
End;
Var head:steck;
Procedure Add_Item(head:steck);
Var New_Item,Doit_Item:steck;
Begin
GetMem(New_Item,sizeof(steck));
If New_Item<>Nil then
Begin
Writeln('id:');
Readln(New_Item.id);
Writeln('str:');
Readln(New_Item.str);
New_Item.next:=Nil then
head:=New_Item else
Begin
Doit_Item:head
While Doit_Item.next<>Nil do
Doit_Item:-Doit_Item.next;
Doit_Item.next:=New_Item;
End;
End;
End.
volvo
А вот тут посмотреть? FAQ: Стеки

P.S. А почему в Дельфи? Это по-моему, чистый Паскаль... blink.gif
Digitalator
а в пасе разве есть SysUtils ? это уже из делфи ... но тут помоему и без этого модуля все будет прекрасно работать.
Вопросц : нафиг в делфях самому писать списки??? там уже все есть...
Atreides
Теперь понял, элемент, который я только что добавил я, должен удалить?
А как будет выглядеть процедура добавления элемента и удаления?
volvo
Иди по той же ссылке - там прикреплен модуль, в нем все есть - и добавление, и удаление...
Atreides
Не что я не понял :molitva: , как этими модулями пользоваться то? Там есть готовый список Стек, так? И к нему нужно подписать процедуры, так что ли? А какие нужны процедуры и функции и в каком порядке? Help, ни как не могу сообразить с этими списками!
volvo
Цитата(Atreides @ 10.05.05 18:30)
Help, ни как не могу сообразить с этими списками!

Ну, а если воспользоваться поиском по слову Stack ? Ведь были десятки примеров использования !!! Вот один из них: Стеки
Atreides
Там процедура удаления не подходит к моему списку стек <_< ? Как написать сюда процедуру удаления, плиз help :molitva: ? Там, какие то объявления всё мудрено blink.gif у меня проще…
Код
program Spisok_Stack;

uses
 SysUtils;

Type
Steck=^nsteck;
Nsteck=record
Id:cardinal;
Str:string[99];
Next:steck;
End;
Var
head:steck;
Procedure Add_Item(head:steck);
Var New_Item,Doit_Item:steck;
Begin
GetMem(New_Item,sizeof(steck));
If New_Item<>Nil then
Begin
Writeln('id:');
Readln(New_Item.id);
Writeln('str:');
Readln(New_Item.str);
New_Item.next:=Nil;
if head=Nil then
head:=New_Item else
Begin
Doit_Item:=head;
While Doit_Item.next<>Nil do
Doit_Item:=Doit_Item.next;
Doit_Item.next:=New_Item;
End;
End; End;
End.
volvo
Цитата(Atreides @ 14.05.05 15:12)
Там, какие то объявления всё мудрено blink.gif  у меня проще…

Проще - не значит правильнее... Если тебе нравится изобретать велосипед, изобретай его сам, OK?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.