Tree of Data Structure

Post on 16-Feb-2017

255 views 0 download

Transcript of Tree of Data Structure

TREE

leaves

branches roo

t

root

nodes

leaves

branches

Connected graph.Connected graph. Acyclic graph. A finite non-empty set of elements. CConsisting of nodes with a parent-child relation.

Introduction of a Tree

B C

FD E G

A

Family Structures of a Tree Root-node without parent (A) Siblings-nodes share the same parent.Internal node-node with at least one child (A, B, C, E)External node (leaf): node without children (D,F,G, H, I)Ancestors of a node: parent, grandparent, grand-grandparent, etc.Descendant of a node: child, grandchild, grand-grandchild, etc.Depth of a node: number of ancestorsHeight of a tree: maximum depth of any node (3)Degree of a node: the number of its childrenDegree of a tree: the maximum number of its node. Subtree: tree consisting of a node and its descendants

Left Child Right Sibling Representation

Data

Left Child Right Sibling

A

B C D

IHGFE

J K L

Preorder Sequence. Inorder Sequence. Postorder Sequence. Level order Sequence

Tree Traversal Technique

Tree Traversal Technique

Preorder Inorder Postorder Level order

Tree Traversal Technique (CONT.)

Preorder Sequence: Visits the nodes of a tree in a systematic manner A node is visited before its descendants Application: print a structured document

Algorithm: void preorder(node *root){

if(root!=NULL){printf(“%c”,root->data);

if(root->left!=NULL)preorder(root->left);

if(root->right!=NULL)preorder(root->right);

}}

Inorder Sequence: A node is visited after its left subtree and before its

right sub treeAlgorithm :void inorder(node *root){

if(root!=NULL){if(root->left!=NULL)

inorder(root->left);printf(“%c”,root->data);if(root->right!=NULL)

inorder(root->right);}

}

Postorder Sequence: A node is visited after its descendants Application: compute space used by files in a

directory and its subdirectoriesAlgorithm :void postorder(node *root){

if(root!=NULL){if(root->left!=NULL)

postorder(root->left);if(root->right!=NULL)

postorder(root->right);printf(“%c”,root->data);

}}

Level order Sequence: A node is traversed in a level by

level order. Algorithm :Queue<-rootwhile Queue !=Empty

v<-Queuevisit vVisited Sequence<-vif left(v) !=NULL then

Queue<-left(v)if right(v) !=NULL then

Queue<-right(v)endwhilereturn Visited Sequence

Each internal node has at most two children (degree of two)

The children of a node are an ordered pair

Alternative Recursive Defintion: A tree consisting of a single node, or A tree whose root has an ordered pair of children.

Applications:

Arithmetic expressions. Decisions process searching. Searching.

A

B C

F GD E

H I

Strict Binary Tree: Each node exactly having two or zero

child.

Full Binary Tree: Each node exactly having two node or

zero child and leaf node at the same level.

Complete Binary Tree: All leaf node is at the same height. No missing node in the sequence.

Strict Binary Tree

Full Binary Tree

A

B C

GE

I

D

H

F

Complete Binary Tree

A

B C

GF

Basic Operations: Inserting an element into tree. Deleting an element from tree. Searching for an element. Traversing the tree.

Auxiliary Operations: Finding size of tree. Calculating height of tree.

Expressions trees are used in compiler. Huffman coding trees which are used in data

compression technique. Binary Search Tree (BST) supports insertion &

deletion of node with o(log n) Priority queue supports search and deletion of min or

max on a collection of items in a logarithmic times.

Method 1: height=max(level(i))Method 2: height= log2(n)

Method 3: height(T)=max(height(Tl),height(Tr))+1

Algorithm :

int height(node *root){if(root==NULL)

return -1;else if(root->left==NULL && root->right==NULL)

return 0;else

return max(height(root->left),height(root->right))+1;}

Int max(int x,int y){if(x>y)

return x;else

return y;}

https://en.wikipedia.org/wiki/Tree_%28data_stru cture%29 http://www.slideshare.net/samsumitgupta/trees-data-structure http://www.i-programmer.info/babbages-bag/477-trees.html https://www.cse.iitb.ac.in/~cs101/pdfs/Trees.ppt