Doubly-linked list/Element insertion: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
(Added XPL0 example.) |
||
Line 1,638: | Line 1,638: | ||
<pre> |
<pre> |
||
[A <-> C <-> B] |
[A <-> C <-> B] |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<syntaxhighlight lang "XPL0">def \Node\ Prev, Data, Next; \Element (Node) definition |
|||
proc Insert(NewNode, Node); \Insert NewNode after Node |
|||
int NewNode, Node, NextNode; |
|||
[NextNode:= Node(Next); |
|||
NextNode(Prev):= NewNode; |
|||
NewNode(Next):= NextNode; |
|||
NewNode(Prev):= Node; |
|||
Node(Next):= NewNode; |
|||
]; |
|||
int Node, A(3), B(3), C(3); |
|||
[A(Next):= B; |
|||
A(Data):= ^a; |
|||
B(Prev):= A; |
|||
B(Data):= ^b; |
|||
B(Next):= 0; |
|||
C(Data):= ^c; |
|||
Insert(C, A); |
|||
Node:= A; |
|||
while Node # 0 do |
|||
[ChOut(0, Node(Data)); |
|||
Node:= Node(Next); |
|||
]; |
|||
]</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
acb |
|||
</pre> |
</pre> |
||