1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Список я написал. Но народ подскажите, пожалуйста, как вот для таково односвязного списка стек сделать процедуру добавления и удаления элемента. И объясните, как производится добавление и откуда должно происходить удаление, если добавлять нужно с головы. Не это понятно, что в стеке добавление и удаление должно происходить только с одного и того же места, но какой элемент будет удаляться? Это мой список, где 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.
Сообщение отредактировано: Atreides -
--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
а в пасе разве есть SysUtils ? это уже из делфи ... но тут помоему и без этого модуля все будет прекрасно работать. Вопросц : нафиг в делфях самому писать списки??? там уже все есть...
--------------------
In byte we trust ICQ World.ru mail[dog]digitalator[dot]com
Не что я не понял :molitva: , как этими модулями пользоваться то? Там есть готовый список Стек, так? И к нему нужно подписать процедуры, так что ли? А какие нужны процедуры и функции и в каком порядке? Help, ни как не могу сообразить с этими списками!
--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
Там процедура удаления не подходит к моему списку стек <_< ? Как написать сюда процедуру удаления, плиз help :molitva: ? Там, какие то объявления всё мудрено у меня проще…
Код
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.
Сообщение отредактировано: Atreides -
--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!