Binary Tree_Array
Binary Tree_Array
CONSTANT nullPointer ß -1
PROCEDURE AddNode():
INPUT NodeData
IF FreeNode <> NullPointer:
NewNode<-FreeNode
FreeNode=ArrayNodes[FreeNode,0]
ArrayNodes[NewNode,0] <- NullPointer
ArrayNodes[NewNode,1] <- NodeData
ArrayNodes[NewNode,2] <- NullPointer
IF RootPointer = -1 THEN
RootPointer <- 0
ELSE
Placed <- False
ThisNode <- RootPointer
WHILE ThisNode<>NullPointer
PreviousNode<-ThisNode
IF NodeData < ArrayNodes[ThisNode,1]:
TurnLeft <- TRUE
ThisNode <- ArrayNodes[ThisNode,0]
ELSE
TurnLeft <-FALSE
ThisNode <-ArrayNodes[ThisNode,2]
ENDIF
ENDWHILE
IF TurnLeft=TRUE THEN
ArrayNodes[PreviousNode,0] <- NewNode
ELSE
ArrayNodes[PreviousNode,2] <- NewNode
ENDIF
ELSE
OUTPUT("Tree is full")
ENDIF
ENDPROCEDURE
Binary Tree using Array Method-2
Add data to the binary tree
PROCEDURE AddNode():
INPUT NodeData
IF FreeNode <> NullPointer THEN
NewNode <- FreeNode
FreeNode <- ArrayNodes[FreeNode,0]
ArrayNodes[NewNode,0] <- -1
ArrayNodes[NewNode,1] <- NodeData
ArrayNodes[NewNode,2] <- NullPointer
IF RootPointer = -1 THEN
RootPointer <- 0
ELSE
Placed <- False
ThisNode <- RootPointer
WHILE ThisNode <>NullPointer
PreviousNode <- ThisNode
IF NodeData < ArrayNodes[ThisNode,1] THEN
TurnLeft <- TRUE
ThisNode <- ArrayNodes[ThisNode,0]
ELSE
TurnLeft <- FALSE
ThisNode <- ArrayNodes[ThisNode,2]
ENDIF
ENDWHILE
IF TurnLeft=TRUE THEN
ArrayNodes[PreviousNode,0] <- NewNode
ELSE
ArrayNodes[PreviousNode,2] <- NewNode
ENDIF
ELSE
OUTPUT "Tree is full"
ENDIF
Method-1
Binary Tree using Array
Search data
PROCEDURE find(itemSearch)
ThisNodePointerßrootPointer
Found=FALSE
WHILE ThisNodePointer<>nullPointer AND Found=FALSE Do
IF myTree[ThisNodePointer,1]=itemSearch THEN
FoundßTRUE
ELSE
IF Tree[ThisNodePointer,1]>itemSearch THEN
ThisNodePointer ßmyTree[ThisNodePointer,0]
ELSE
ThisNodePointer ßmyTree[ThisNodePointer,2]
ENDIF
ENDIF
ENDWHILE
IF Found=TRUE
THEN
PRINT(“Item Found”)
ELSE
PRINT(“Item not found”)
ENDIF
ENDPROCEDURE
Method-1
Binary Tree using Array
Display data
PROCEDURE TraverseTree( )
currentNodePtr=RootPointer
IF RootPointer=nullPointer THEN
print("Tree is empty")
ELSE
FOR i<- 1 TO 8
OUTPUT(i, Tree[i,0], Tree[i,1], Tree[i,2])
NEXT i
ENDIF
ENDPROCEDURE