文章
25
粉丝
19
获赞
2
访问
17.1k
//给的是先序遍历的输入序列
//07/09/24 23:02
//
#include <iostream>
using namespace std;
typedef struct Node{
char da;
struct Node *lchild, *rchild;
//这里后面的node还没有定义,所以先用struct Node来定义 指针,指针*是两个都有的
}* node;
//结构体指针和别名
void createBitTree(node &n){
//char建议直接合进函数中 ,方便多次递归的输入,否则创建形参char不好递归输入
char c;
cin>>c;
//这里的n就是一个新Node的地址
if(c == '0') n = NULL;
else{
n = new Node;
//new返回新Node地址
n->da = c;
//该函数是直接通过递归直接建立tree
//多层递归,有多次输入
//所以后续就是创建顺序
createBitTree(n->lchild);
createBitTree(n->rchild);
}//递归的终点是叶子结点下空节点的'0'
}
void preOrderTraverse(node n){
//只输出,没有修改,可以不传指针
if(n != NULL){
cout<<n->da<<' ';
preOrderTraverse(n->lchild);
preOrderTraverse(n->rchild);
}
}//递归的终点是叶子结点下的空节点,NULL
void inOrderTraverse(node n){
if(n != NULL){
inOrderTraverse(n->lchild);
cout<<n->da<<' ';
inOrderTraverse(n->rchild);
}
}
void po...
登录后发布评论
暂无评论,来抢沙发