Wednesday, 28 August 2013

Algorithms for Threaded Binary Search Tree

Algorithms for Threaded Binary Search Tree

I am going to implement Threaded Binary Search Tree please check the
insertion algorithm is correct. Algorithm is:
Algorithm Insert_TBST(LCHILD(HEADER),info)
begin
PTR:=ALLOCATE(SIZE);
INFO(PTR):=info;
if LCHILD(HEADER)=NULL, then
begin
LCHILD(HEADER):=PTR;
PARENT(HEADER):=NULL;
RCHILD(HEADER):=HEADER;
LTHREAD(HEADER):=FALSE;
RTHREAD(HEADER):=TRUE;
PARENT(PTR):=HEADER;
LCHILD(PTR):=HEADER;
RCHILD(PTR):=HEADER;
LTHREAD(PTR):=TRUE;
RTHREAD(PTR):=TRUE;
end
else
begin
XPTR:=LCHILD(HEADER);
if INFO(XPTR) = info, then
begin
if LTHREAD(XPTR)=FALSE, then
Insert_TBST(LCHILD(XPTR),info);
else
begin
LCHILD(PTR):=LCHILD(XPTR);
LTHREAD(PTR):=TRUE;
RCHILD(PTR):=XPTR;
RTHREAD(PTR):=TRUE;
PARENT(PTR):=XPTR;
LCHILD(XPTR):=PTR;
LTHREAD(XPTR):=FALSE;
end
end
else
begin
if RTHREAD(XPTR)=FALSE, then
Insert_TBST(RCHILD(XPTR),info);
else
begin
LCHILD(PTR):=XPTR;
LTHREAD(PTR):=TRUE;
RCHILD(PTR):=RCHILD(XPTR);
RTHREAD(PTR):=TRUE;
PARENT(PTR):=XPTR;
RCHILD(XPTR):=PTR;
RTHREAD(XPTR):=FALSE;
end
end
end
end

No comments:

Post a Comment