Doubly-linked list/Definition: Difference between revisions

m
Line 1,524:
Group Head, Tail
Module PushTail(k as pointer) {
if .Tail is Null then {
.Head<=k
.Tail<=k
} else {
n=.Tail
.Tail<=k
k=>pred=n=>pred
n=>pred=k
k=>succ=n
}
}
}
Function RemoveTail {
n=.Tail
if n is .Head then {
.Head->Null
.Tail->Null
} Else {
.Tail<=n=>succ
.Tail=>pred=n=>pred
n=>pred->Null
}
for n {
.succ->Null
.pred->Null
}
=n
}
}=n
=n}
Module PushHead(k as pointer) {
if .head is Null then {
Line 1,646:
L.InsertAfter m1, newNode
L.RemoveNode m1
clear m1 ' last time mm1 used here
newNode=Null
Print "ok.............."
Anonymous user