You are on page 1of 12

HNG DN TO TEMPLATE BINARY SEARCH TREE

1. To template:
to ra 1 cu trc d liu list/vector/tree cc object l 1 class/struct ch khng phi l kiu
d liu n thun nh int, double,string, ta phi to template lm 1 khun mu p dng cho
tt c object c kiu class bt k m khng cn to li cho mi class khc nhau.
to 1 template , ta s dng c php;
template<typename T>
hoc template<class T> (nn dng khi object lun l class)
Sau s dng T nh 1 object bnh thng .
Khi mun s dng template, ta thay T bng 1 object c kiu bt k.
VD: Khi to Tree mun ly d liu ca 1 node l class T
template<typename _T>
struct _Tree_node{
_Tree_node root,left,right;

}
template<typename T>
class _Tree{
_Node *_root,_left,_right;
_T _data
; //s ly data l d liu ca node;
public:
T getData{
return _data;
}
void setData(_T _input){
_data=_input;
}

}
Khi s dng:
main(){
int k;
_Tree<int>example;
example._root->setData(5)
k = example->root.getData();
cout<<k<<endl;
}
*y ch l v d, cn thm cc function khc chng trnh mi chy c.
II>To binary search Tree:
1.Cu trc 1 Binary Tree:
mi Node trong tree l c nhiu nht 2 con. 1 node con c th rng hoc c node phi
hoc tri hoc c 2.

Root: Node gc ca tree, l node duy nht khng c node cha;


Node right, left
D liu trong mi Node
root

Level

left

right

Level

Height: 3

right
left

left

Level

2.Cc cch biu din tree:


Breadth-first traversal: truy cp cc node theo th t t level thp nht n cao nht, t
tri qua phi
Depth-first traversal:truy cp 1 subtree(tri hoc phi) sau truy cp node ri truy cp
subtree cn li.Chia lm 3 nhm chnh:
-V=visit node, L=visit left subtree, R=visit right subtree:
-VLR: Preorder traversal
-LVR: Inorder
-LRV: Postorder
V d:

Preorder traversal: F, B, A, D, C, E, G, I, H (root, left, right)


Inorder traversal: A, B, C, D, E, F, G, H, I (left, root, right)
Postorder traversal: A, C, E, D, B, H, I, G, F (left, right, root)
Level-order traversal (breadth first): F, B, G, A, D, I, C, E, H

You might also like