Doubly-linked list/Element insertion: Difference between revisions
Content added Content deleted
(→{{header|Visual Basic .NET}}: added zkl) |
|||
Line 685: | Line 685: | ||
{{out}} |
{{out}} |
||
<pre>A C B</pre> |
<pre>A C B</pre> |
||
=={{header|Phix}}== |
|||
See also [[Doubly-linked_list/Traversal#Phix|Doubly-linked_list/Traversal]]. |
|||
<lang Phix>enum NEXT,PREV,DATA |
|||
constant empty_dll = {{1,1}} |
|||
sequence dll = empty_dll |
|||
procedure insert_after(object data, integer pos=1) |
|||
integer prv = dll[pos][PREV] |
|||
dll = append(dll,{pos,prv,data}) |
|||
if prv!=0 then |
|||
dll[prv][NEXT] = length(dll) |
|||
end if |
|||
dll[pos][PREV] = length(dll) |
|||
end procedure |
|||
insert_after("ONE") |
|||
insert_after("TWO") |
|||
insert_after("THREE") |
|||
?dll</lang> |
|||
{{out}} |
|||
<pre> |
|||
{{2,4},{3,1,"ONE"},{4,2,"TWO"},{1,3,"THREE"}} |
|||
</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |