Doubly-linked list/Element insertion: Difference between revisions

Content added Content deleted
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>