Professional Documents
Culture Documents
(000088) PDF
(000088) PDF
S. Prasitjutrakul 1994
Binary Trees
Jim
Amy Kim
Boy
B C
root
D E G
left right F
H I J K
S. Prasitjutrakul 1994
Traversal of Binary Trees
void Preorder( NodeType *pRoot )
{
if ( pRoot ) {
Visit( pRoot );
Preorder( pRoot->pLeft );
Preorder( pRoot->pRight ); pRoot
}
}
void Inorder( NodeType *pRoot )
{ pRoot->pLeft pRoot->pRigh
if ( pRoot ) {
Inorder( pRoot->pLeft );
Visit( pRoot );
Inorder( pRoot->pRight );
}
}
void Postorder( NodeType *pRoot )
{
if ( pRoot ) {
Postorder( pRoot->pLeft ); S. Prasitjutrakul 1994
Traversal of Binary Trees
G
D J
B F I M
K
A C E H
L
Preorder : G D B A C F E J I H N K L
Inorder : A B C D E F G H I J K L M
Postorder : A C B E F D H I L K N J G
S. Prasitjutrakul 1994
Expression Trees
/
log !
+ ×
H N
- ?
log H N! 2 A
-
B 0.5
+ AND ? ×
× < × C
A B 2
B C A B C D 4 A
-B+(B ? 2 - 4×A×C)? 0.5
A + ( B × C ) (A<B) AND (C>D)
2×A
S. Prasitjutrakul 1994
Expression Tree & Tree Traversal
-
/
E
× +
A B C D
Inorder : A × B / C + D - E
Preorder : - / × A B + C D E
Postorder : A B × C D + / E -
S. Prasitjutrakul 1994
ตนไมคนหาแบบทวิภาค (Binary Search Tree)
Jim
Amy Kim
Boy คียมีคามากกวา
คียมีคานอยกวา "Jim"
"Jim"
typedef struct NodeTag {
ItemType info;
struct NodeTag *pLeft;
struct NodeTag *pRight;
} NodeType;
S. Prasitjutrakul 1994
Binary Search Trees
Kay Amy
Guy
Jim Sam
Jim
Guy
Jim Kay
Kim
Boy Boy Kim
Sam
S. Prasitjutrakul 1994
TreeSearch
NodeType *TreeSearch( NodeType *p, KeyType Target )
{
if ( p ) {
if ( LT( Target, p->info.key ) )
p = TreeSearch( p->pLeft, Target );
else if ( GT( Target, p->info.key ) )
p = TreeSearch( p->pRight, Target );
}
return( p );
}
S. Prasitjutrakul 1994
Deletion from a Binary Search Tree
Jim Jim
pNode
Jan
S. Prasitjutrakul 1994
Deletion from a Binary Search Tree
Jim Jim
pNode
Jan Jan
กรณีที่ตนไมยอยขางหนึ่ง
ของ *pNode ไมมี
S. Prasitjutrakul 1994
Deletion from a Binary Search Tree
pNode Jim Jim
S. Prasitjutrakul 1994
Deletion from a Binary Seach Tree
N N N
K K S
K S
S. Prasitjutrakul 1994
Deletion from a Binary Search Tree
G G
D J D J
B F I M B F I M
A C E H K A C E H K
Inorder : A B C D E F G H I J K L
S. Prasitjutrakul 1994
Treesort
1. รับขอมูลที่ตองการเรียงลําดับ
2. สรางตนไมคนหาแบบทวิภาคจากขอมูลเหลานั้น
3. แวะผานขอมูลในตนไม แบบตามลําดับ
K K K K K
G G G G U
H E H E H
K K K
K G H E U I A C
G U G U G U
E H E H E H
I A I A I
C S. Prasitjutrakul 1994
Treesort vs. Quicksort
K G H E U I A C
K
G H E I A C K U
G U E A C G H I K U
A C E G H I K U
E H
A C E G H I K U
A I A C E G H I K U
A C E G H I K U
C
A C E G H I K U
A C E G H I K U
S. Prasitjutrakul 1994
Building a Binary Search Tree
1 2 3 4 5 6 7 8 9 10 11 12 13
4 12
2 6 10 13
1 3 5 7 9 11
S. Prasitjutrakul 1994
Building a Binary Search Tree
16
8 24
4 12 20 28
2 6 10 14 18 22 26 30
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
S. Prasitjutrakul 1994
Building a Binary Search Tree
4 4 4 4
2 2 2 2 2 6 2 6
1 1 1 3 1 3 1 3 5 1 3 5 1 3 5 7
8 8 8 8
4 4 4 4
2 6 2 6 2 6 10 2 6 10
1 3 5 7 1 3 5 7 9 1 3 5 7 9 1 3 5 7 9
1 2 3 4 5 6 7 8 9 10
S. Prasitjutrakul 1994
Randomly Built Binary Search Trees
S. Prasitjutrakul 1994