![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() вот тест программы, она вводит и выводит числа. числа хранятся в двусвязном списке с фиктивным элементом.
Код:
Type List=^element; element=record num : integer; right,left : List; end; Procedure Creation(var sent : List); Begin new(sent); sent^.left:=sent; sent^.right:=sent; end; Procedure Insertion(p : List; y : integer); Var q : List; Begin new(q); q^.num:=y; q^.left:=p; q^.right:=p^.right;\\ что происходит здесь? p^.right^.left:=q;\\ и здесь. p^.right:=q; End; Var i, k,x : integer; sent,p : List; Begin Reset(input,'input.txt'); Rewrite(output,'output.txt'); Creation(sent); while not seekeof do begin read(x); Insertion(sent,x); end; p:=sent^.left; while p<>sent do begin Write(p^.num,' '); p:=p^.left; end; end |
#2
|
||||
|
||||
![]() Если вы про комменты "здесь и здесь" - то
создаем новый элемент q, в его правое значение пишем правое текущей позиции (куда вставляем), потом предыдущий элемент для P связываем с q. были элементы в таком порядке: p.right p p.left а стали в таком: p.right q p p.left Т.е. СЛЕВА от p.right (вторая интересующая строка) ставится Q, а СПРАВА от Q (первая интересующая строка) ставится p.right. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 14.05.2011 в 23:53. |
#3
|
|||
|
|||
![]() т.е. вот этим действием
Код:
p^.right^.left:=q; Код:
q^.left:=p; Код:
q^.right:=p^.right; Код:
p^.right^.left:=q; |