자유 공간 리스트 알고리즘 (단순 연결 리스트)
1.자유 공간 리스트에서의 노드 할당 알고리즘
getNode()
if(Free = null) then
underflow();
new<-Free;
Free<-Free.link;
return new;
end getNode()
2.자유 공간 리스트의 노드 반환 알고리즘
returnNode(old)
old.link<-Free;
Free<-old;
end returnNode()
3.리스트의 첫 번째 노드 삽입 알고리즘
insertFirstNode(L, x)
new<-getNode();
new.data<-x;
new.link<-L;
L<-new;
end insertFirstNode()
4.리스트의 중간 노드 삽입 알고리즘
insertMiddleNode(L, pre, x)
new<-getNode();
new.data<-x;
if(L=null) than {
L<-new;
new.link<-null
}
else{
new.link<-pre.link
pre.link<-new;
}
end insertMiddleNode
5.리스트의 마지막 노드 삽입 알고리즘
insertLastNode(L, x)
new<-getNode();
new.data<-x;
new.link<-null;
if(L = null) then {
L<-new;
return;
}
temp<-L:
while(temp.link =/ null) do
temp<-temp.link;
temp.link<-new;
end insertLastNode()
6.리스트의 노드 삭제 알고리즘
deleteNode(L, pre)
if(L=null) then error;
else {
old<-pre.link;
if(old=null) then return;
pre.link<-old.link;
}
returnNode(old);
end deletNode()
7.리스트 L에서 x노드 탐색 알고리즘
searchNode(L, x)
temp<-L;
while (temp =/ null) do {
if (temp.data = x) then return temp;
temp <- temp.link;
}
return temp;
end searchNode()