Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

tree

typedef struct  node

{

node *left,right; 

int data;

} node;

// Khai báo kiểu con trỏ chỉ đến nút

typedef struct node *tree;

Khởi tạo cây rỗng

void CreateTree(tree &t)

 {

t=NULL;

}

Kiểm tra cây có bị rỗng không

bool EmptyTree(tree t)

{

return ( t == NULL);

}

tree SearchTree(tree t, int x)

{

if(x<t->data)

SearchTree(t->left,x);

else if(x>t->data)

SearchTree(t->right,x);

else

return t;

}

void InsertTree(tree &t, int x)

{

if(t==NULL) // !EmptyTree(t)

{

t = (tree) malloc(sizeof(node));

t->data = x;

t->left = NULL;

t->right = NULL;

}

else if(x<t->data)

InsertTree(t->left,x);

else

InsertTree(t->right,x);

void Del (tree &p, tree &q)

{if(p->right !=NULL)

Del(p->right,q);

else

{q->data = p->data;

q = p;

p = q->left;

}

}

gia su xoa nut 10

void DeleteTree (tree &t, int x)

{

tree q;

if( x<t->data )

DeleteTree(t->left,x);

else if ( x>t->data)

DeleteTree(t->right,x);

else

{

q = t;

if (t ->right = = NULL)t = t ->left;else if (t->left == NULL)

t = t ->right;else

Del(t->left,q) ;

free (q);

}

}

void LNR(tree t,int muc)

{

cout<<endl;

if(t!=NULL)

{

muc++;

LNR(t->left,muc);

cout<<setw(muc*5)<<t->data;

LNR(t->right,muc);

muc--;

}

}

void LRN(tree t,int muc)

{

cout<<endl;

if(t!=NULL)

{

muc++;

LRN(t->left,muc);

LRN(t->right,muc);

muc--;

cout<<setw(muc*5)<<t->data;

}

}

void NLR(tree t,int muc)

{

cout<<endl;

if(t!=NULL)

{

cout<<setw(muc*5)<<t->data;muc++;

NLR(t->left,muc);

NLR(t->right,muc);

muc--;

}

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: