- By
**hisa** - Follow User

- 97 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Trees' - hisa

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

A tree is a set of nodes which are connected by branches to other nodes in a 'tree-like' structure. There is a special node called the root from which all other nodes can be accessed. Other nodes are grouped into subtrees which in turn form other subtrees and so on. The tree shown in figure 1 has a variable number of branches from each node and may not be a practical structure to implement. A special tree with more than two branches can be implemented as a B Tree. A tree with a maximum of two branches is known as a Binary Tree. A Strict Binary Tree has either none or two branches.

TreesTree diagram figure 1 other nodes in a 'tree-like' structure. There is a special node called the root from which all other nodes can be accessed. Other nodes are grouped into subtrees which in turn form other subtrees and so on. The tree shown in figure 1 has a variable number of branches from each node and may not be a practical structure to implement. A special tree with more than two branches can be implemented as a B Tree. A tree with a maximum of two branches is known as a Binary Tree. A Strict Binary Tree has either none or two branches.

A Knuth Binary Tree has none, one or two branches. Figure 2 shows a Knuth Binary Tree. Each node contains two pointers, one pointing to the left subtree and one pointing to the right subtree. A Knuth Tree is easier to implement than a strict binary tree as recursive algorithms can be used. In a Binary Search Tree the values contained in the nodes in the left subtree, child nodes, will all be less than that in the root node. Similarly the values contained in the nodes in the right subtree will all be greater than that in the root node. Trees can be reversed if required by making the left subtrees contain larger values than the root.

Knuth Binary TreesKnuth binary tree figure 2 shows a Knuth Binary Tree. Each node contains two pointers, one pointing to the left subtree and one pointing to the right subtree. A Knuth Tree is easier to implement than a strict binary tree as recursive algorithms can be used. In a Binary Search Tree the values contained in the nodes in the left subtree, child nodes, will all be less than that in the root node. Similarly the values contained in the nodes in the right subtree will all be greater than that in the root node. Trees can be reversed if required by making the left subtrees contain larger values than the root.

Figure 3 shows the order of the nodes in a example of a binary search tree. The letters symbolise the order of the nodes. In a balanced tree the root node would be approximately midway in an ordered list of the contents of the nodes. Nodes with lower values than the root are found in the left subtree and higher values in the right subtree. Each subtree follows the same rule.

Binary search treeBinary search tree figure 3 binary search tree. The letters symbolise the order of the nodes. In a balanced tree the root node would be approximately midway in an ordered list of the contents of the nodes. Nodes with lower values than the root are found in the left subtree and higher values in the right subtree. Each subtree follows the same rule.

A traverse is an ordered walk through a tree such that each node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

Traversing a TreeIf the tree is empty then node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

make this item the tree

else

compare the item to the root

if the item comes before the root

add item to the left branch

end if

if the item comes after the root (if item is not unique need to use

an else to allow for equality)

add item to the right branch

end if

end if

Algorithm for constructing a tree (adding a unique node)if the tree is not empty and not found node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

if the key sought equals the root's key then

found is true

else

if the key sought is less than the root's key then

search down the left tree

else

search down the right tree

end if

end if

end if

Algorithm for searching a treeThere are 4 cases: node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

1. The node is a leaf

2. The node has only one branch

3. The node has 2 branches and the Rightmost Node of the Left Subtree (RNLS) is a leaf

4. The node has 2 branches and the RNLS has a left subtree

Deleting an item from a treeFree the space occupied by the leaf node. node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

Make pointer to the node from the parent node ==NULL.

Case 1 - the node is a leafGraft the child branch of the node onto the parent node. node is visited only once. There are various ways of traversing a tree. Using figure 3 as an example:

Free the space occupied by the deleted node.

Case 2: The node has 1 branchCopy data part of the RNLS to data part of node to be deleted

Free the space occupied by the RNLS

Make pointer to the RNLS from it's parent == NULL

Case 3: The node has 2 branches and the Rightmost Node of the Left Subtree (RNLS) is a leafCopy data part of RNLS to data part of node to be deleted deleted

Graft the child branch of the RNLS (can only be a left branch)

onto the RNLS's parent node.

Free the space occupied by the RNLS

Case 4: The node has 2 branches and the RNLS has a left subtreetree.c deletedsource1Global declarations

tree.c deletedsource2main()

tree.c deletedsource3chop()pause()menu()

tree.c deletedsource4display,getentryfunctions

tree.c deletedsource5insert,find_delfunctions

tree.c source 6 delet() function deleted

tree.c deletedsource7whichcase() function

Download Presentation

Connecting to Server..