二叉树

#include <iostream>
#include <queue>
using namespace std;
typedef struct Bnode {
int data;
struct Bnode *lchild,*rchild;
}Bnode,*Btree;
void preorder(Btree T){//先序
if(T){
cout<<T->data<<" ";
preorder(T->lchild);
preorder(T->rchild);
}
}
void inorder(Btree T){//中序
if(T){
inorder(T->lchild);
cout<<T->data<<" ";
inorder(T->rchild);
}
}
void posorder(Btree T){//后序
if(T){
posorder(T->lchild);
posorder(T->rchild);
cout<<T->data<<" ";
}
}
bool leveltraverse(Btree T){
Btree p;
if(!T)
return false;
queue<Btree>Q;//创建队列 指针类型
Q.push(T);//根指针入队
while(!Q.empty()){//如果队列不为空
p=Q.front();//取出队头
Q.pop();//队头元素出队
cout<<p->data<<" ";
if(p->lchild)
Q.push(p->lchild);//左孩子指针入队
if(p->rchild)
Q.push(p->rchild);//右孩子指针入队
}
return true;
}
void Createtree(Btree &T){//创建二叉树
char ch;
cin>>ch;//按先序次序输入二叉树节点的值(一个字符)
if(ch=='#'){
T=NULL;//递归结束,建空树
}
else{
T=new Bnode;
T->data=ch;
Createtree(T->lchild);
Createtree(T->rchild);
}
}
int main(){

return 0;
}

posted @ 2023-01-31 16:42  一纸书歌  阅读(19)  评论(0)    收藏  举报