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 -
--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!