Jump to content

Doubly-linked list/Element insertion: Difference between revisions

Line 685:
{{out}}
<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}}==
7,818

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.