#include"iostream"
using namespace std;
struct node{
int data;
node *childl;
node *childr;
node *parent;
}Node;
node* add(int num){
node *tree = new node;
tree->data = num;
tree->childl =NULL;
tree->childr =NULL;
return tree;
}
//先序遍历
void DFS(struct node *tree){
cout<<tree->data<<" ";
if((tree->childl!=NULL)){
DFS(tree->childl); //递归
}
if((tree->childr!=NULL)){
DFS(tree->childr);
}
return;
}
//层序遍历 队列实现
node *queue[100]; //队列
node *p; //游标
int head=1,b=1,c=1; //head:入队游标 b:出队游标
void BFS(struct node *tree){
queue[head++] = tree; //根入队
cout<<tree->data<<" ";
while((head-b)!=0){ //当head和b相等时说明已经遍历完成
p=queue[b++];
if((p->childl!=NULL)){ //左结点
queue[head++] = p->childl;
}
if((p->childr!=NULL)){ //右结点
queue[head++] = p->childr;
}
cout<<queue[b]->data<<" ";
}
}
int main(){
node *root,*child1,*child2,*child3;
root = new node;
child1 = new node;
child2 = new node;
child3 = new node;
root->data = 0;
root->childl = add(10);
root->childr = add(20);
root->childl->childl = add(30);
root->childl->childr = add(40);
DFS(root);
cout<<"\n";
BFS(root);
return 0;
}
Tree(c++)
最新推荐文章于 2024-05-26 18:52:42 发布