![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Clon |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот я составил прогу, основываясь на материалах с этого форума по спискам.
Вот только в эти две процедуры мне надо переделать так, чтобы они добавляли элементы перед и после ЛЮБОГО элемента из списка соответственно, а не только в начало и в конец. Помогите, если не трудно Procedure Dobnach(var L: TList; E:TElem); {Добавление элемента в начало списка} Тегами пользуемся... Сообщение отредактировано: volvo - 2.11.2006 20:19 |
![]() ![]() |
Clon |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот программа. Кстати, сейчас еще думаю над удалением произвольного элемента. Поскольку элементы у меня типа boolean, то, я так считаю, поиск и удаление элемента производится путем указания его порядкового номера в списке
Код program kurs83(input,output); Type TElem = boolean; TList = ^TNode; TNode = record Info: TElem; Next: TList end; var w:boolean; data:char; z:integer; L:TList; E:TElem; Procedure ADD(var L: TList); var N: TList; Begin new(N); writeln('vvedite element'); readln(data); if data='t' then N^.Info:=true; if data='f' then N^.Info:=false; N^.Next:=nil; L:=N End; Procedure Dobnach(var L: TList; E:TElem); var N: TList; Begin new(N); writeln('vvedite element'); readln(data); if data='t' then E:=true; if data='f' then E:=false; N^.Info:=E; N^.Next:=L; L:=N end; procedure Dobend(L: TList; E: TElem); begin while L^.Next<>nil do L := L^.Next; new(L^.Next ); L:=L^.Next; writeln('vvedite element'); readln(data); if data='t' then E:=true; if data='f' then E:=false; L^.Info:=E; L^.Next:=nil end; Procedure Del (Var L: Tlist); Var r: Tlist; Begin writeln('kakoy element udalit?'); r:=L^.Next; L^.Next:=L^.Next^.next; r^.Next:=nil End; procedure Active(var L: TList); var H: TList; P: TList; begin P := nil; while L<>nil do begin H := L^.Next; L^.Next := P; P := L; L:=H end; L :=P end; procedure Print(L: TList ); begin write('< '); while L <> nil DO begin write( L^.Info ); If L^.Next <> nil then write(','); L := L^.Next end; writeln(' >') end; begin w:=false; while w<>true do begin writeln('1-Noviy spisok'); writeln('2-Dob elem v konec'); writeln('3-Dob elem v nachalo'); writeln('4-Deystvie'); writeln('5-Print'); writeln('6-del'); writeln('7-Vihod'); writeln('vvedite punkt menu:'); readln(z); if z=1 then ADD(L); if z=2 then dobend(L,E); if z=3 then dobnach(L,E); if z=4 then Active(L); if z=5 then Print(L); if z=5 then del(L); if z=7 then w:=true; end; end. Так пойдет? Сообщение отредактировано: Clon - 16.05.2006 15:55 |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 3:59 |