data structure - data miningukang/courses/19f-ds/l15-non-binary-tree2.pdf · in this lecture main...
TRANSCRIPT
![Page 1: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/1.jpg)
U Kang 1
Data Structure
Lecture#15: Non-Binary Trees 2
(Chapter 6)
U Kang
Seoul National University
![Page 2: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/2.jpg)
U Kang 2
In This Lecture
Main ideas in implementations of general trees
Compare advantages and disadvantages of implementations
Motivation and main ideas of sequential implementation
![Page 3: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/3.jpg)
U Kang 3
General Tree Implementation
1. List of Children
2. Left-Child/Right-Sibling
3. Dynamic Node
4. Dynamic “Left-Child/Right-Sibling”
Evaluation criteria: how well each implementation supports
• parent();
• leftmostChild();
• rightSibling();
![Page 4: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/4.jpg)
U Kang 4
1. Lists of Children
![Page 5: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/5.jpg)
U Kang 5
1. List of Children
Advantages
parent() is efficient
leftmostChild() is efficient
Combining two trees is easy if both trees are stored in an array
Disadvantages
rightSibling() is inefficient
Problem from array-based implementation: needs to know the number of nodes in advance
![Page 6: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/6.jpg)
U Kang 6
2. Leftmost Child/Right Sibling
Index
![Page 7: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/7.jpg)
U Kang 7
2. Leftmost Child/Right Sibling
Index
![Page 8: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/8.jpg)
U Kang 8
2. Leftmost Child/Right Sibling
Advantages
parent(), leftmostChild(), rightSibling() are efficient
Combining two trees is easy if both trees are stored in an array
More space-efficient than “1. List of children” approach
Disadvantages
Problem from array-based implementation: needs to know the number of nodes in advance
![Page 9: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/9.jpg)
U Kang 9
3. Dynamic Node – ver 1
Link-based implementation of “1. List of children” approach
Each node can have a parent pointer as well (omitted for simplicity)
![Page 10: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/10.jpg)
U Kang 10
3. Dynamic Node – ver 1
Advantages
parent() is efficient (if parent pointer is stored for each node)
leftmostChild() is efficient
Combining two trees is easy
No need to know the number of nodes in advance
Disadvantages
rightSibling() is inefficient
Still, needs to allocate fixed-size array for each node
![Page 11: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/11.jpg)
U Kang 11
3. Dynamic Node – ver 2
Each node now requires a fixed amount of space
![Page 12: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/12.jpg)
U Kang 12
3. Dynamic Node – ver 2
Compared to ver 1,
Ver 2 is more flexible: adding or removing an element is easy
On the other hand, ver 2 requires more space than ver 1
![Page 13: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/13.jpg)
U Kang 13
4. Dynamic Left-Child/Right-Sibling
Link-based implementation of
“2. Leftmost-Child/Right-Sibling” approach
Each node can have a parent pointer as well (omitted for simplicity)
![Page 14: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/14.jpg)
U Kang 14
Dynamic Left-Child/Right-Sibling approach vs. array based “2. Leftmost-Child/Right-Sibling” approach
Dynamic Left-Child/Right-Sibling is better: no need to pre-allocate memory
Dynamic Left-Child/Right-Sibling approach vs. “3. Dynamic Node” (ver 2) approach
Dynamic Left-Child/Right-Sibling is better for space: uses less space
4. Dynamic Left-Child/Right-Sibling
![Page 15: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/15.jpg)
U Kang 15
Sequential Implementations (1)
In some cases, we want to focus only on space Goal is to minimize space, without considering the time for
parent(), leftmostChild(), rightSibling()
Application ? Archiving tree to backup disk (bank)
Sequential tree implementation aims to minimize space to store the tree List node values in the order they would be visited by a
preorder traversal
No pointers are stored
Saves space, but allows only sequential access
Need to retain tree structure for reconstruction
![Page 16: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/16.jpg)
U Kang 16
Sequential Implementations (2)
For binary trees
Idea 1) use a symbol to mark null links AB/D//CEG///FH//I//
/ : null link
What is the amount of space overhead?
How can we further improve idea 1, especially for full binary tree?
Idea 2) use a bit to indicate internal nodes. A’B’/DC’E’G/F’HI
’: internal node. / : null link
No / for full binary tree
For full binary tree, space overhead? (assume each node requires 4 bytes which include the bit)
![Page 17: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/17.jpg)
U Kang 17
For general trees, mark the end of each subtree with )
RAC)D)E))BF)))
Sequential Implementations (3)
Can we use the same technique to store binary trees? Why or why not?
![Page 18: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/18.jpg)
U Kang 18
Sequential Implementations (4)
Exercise: reconstruct a general tree from the sequential representation XAD)E))B)CG)H)))
![Page 19: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/19.jpg)
U Kang 19
What You Need to Know
Main ideas in implementations of general trees Evaluation criteria
Compare advantages and disadvantages of implementations Operations, running time, and space
Motivation and main ideas of sequential implementation Reconstruct trees from sequential representations
![Page 20: Data Structure - Data Miningukang/courses/19F-DS/L15-non-binary-tree2.pdf · In This Lecture Main ideas in implementations of general trees ... RAC)D)E))BF))) Sequential Implementations](https://reader030.vdocuments.us/reader030/viewer/2022040911/5e856157cf5fd208ce55aa7d/html5/thumbnails/20.jpg)
U Kang 20
Questions?