0% found this document useful (0 votes)
3 views

Binary Tree_Array

The document outlines methods for implementing a binary tree using an array, including initialization, adding nodes, searching for data, and displaying the tree. It describes two methods for adding nodes and provides procedures for searching and traversing the tree. The binary tree is structured with pointers to manage node relationships and free nodes for new entries.

Uploaded by

Sooraj Rajmohan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Binary Tree_Array

The document outlines methods for implementing a binary tree using an array, including initialization, adding nodes, searching for data, and displaying the tree. It describes two methods for adding nodes and provides procedures for searching and traversing the tree. The binary tree is structured with pointers to manage node relationships and free nodes for new entries.

Uploaded by

Sooraj Rajmohan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Binary Tree using Array Method-1

Initialisze the binary tree

CONSTANT nullPointer ß -1

DECLARE myTree:ARRAY[0:8,0:2] OF INTEGER


DECLARE rootPointer : INTEGER
DECLARE FreePointer : INTEGER
PROCEDURE InitializeTree
RootPointerß NullPointer
FreePointerß0
FOR Indexß 0 To 7
myTree[Index,0]ßIndex+1
myTree[Index,2]ßnullPointer
NEXT Index
myTree[8,0]ßnullPointer
myTree[8,2]ßnullPointer
ENDPROCEDURE
Binary Tree using Array
Add data to the binary tree
Method-1
Method-2

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

You might also like