![]() |
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 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Как будешь указывать, перед или после КАКОГО элемента надо добавить новый? Указатель на элемент, или значение?
Если указатель на элемент, то примерно вот так (было выдрано из ООП-реализации, так что здесь может глючить... Приведи свою программу полностью для того, чтобы ее можно было проверить...): procedure insert_before(p: plist; x: telem); |
Clon |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 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 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Я еще раз повторяю про ТЕГИ !!!
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Ну, вот так тебя устроит? У тебя было много лишних действий, и даже лишняя процедура.
program kurs83(input,output); |
Clon |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо большое за помощь!
![]() |
Clon |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Пытался вчера сделать удаление для любого элемента из списка, но что-то фигня какая-то выходит. Почему-то постоянно стирает как и нужный элемент и все те, что после него.
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(Clon @ 17.05.2006 19:54) Пытался вчера сделать удаление для любого элемента из списка, но что-то фигня какая-то выходит. ![]() Procedure DelAfter(Var L: Tlist; X: integer);Вроде, работает... |
Clon |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо, я кажется понял, где ошибся. Вот еще такой вопрос: что значит "навигация по списку с помощью итераторов?"
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Итераторов? Ты с языком программирования не ошибся? Итераторы это в С++
![]() |
Clon |
![]()
Сообщение
#11
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дык мне тоже очень это интересно. В задании так и говорится - "Навигацию по списку следует реализовать с применением итераторов". Ну хорошо, а в C++ это что обозначает?
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 15:02 |