用c++编程,要求:用先序和中序序列建立二叉树,用后续遍历输出并打印二叉树,重点是二叉树如何打印出
答案:2 悬赏:70 手机版
解决时间 2021-03-05 04:32
- 提问者网友:沉默的哀伤
- 2021-03-04 06:04
用c++编程,要求:用先序和中序序列建立二叉树,用后续遍历输出并打印二叉树,重点是二叉树如何打印出重点是二叉树如何打印出来
最佳答案
- 五星知识达人网友:忘川信使
- 2021-03-04 06:14
对于每个结点维护一个父结点,根的父节点就是自身
全部回答
- 1楼网友:山有枢
- 2021-03-04 07:17
#include
#include
typedef struct bit{
char data;
struct bit *lchild;
struct bit *rchild;
}bit;
bit* createbitree(bit *t) {
//构造二叉链表表示的二叉树t
char ch;
scanf("%c",&ch);
if (ch=='#') t = null;
else {
t = (bit *)malloc(sizeof(bit));
t->data = ch;
t->lchild=createbitree(t->lchild);
t->rchild=createbitree(t->rchild);
}
return t;
}
void preordertraverse(bit *t) {
// 先序遍历二叉树t
if (t) {
printf("%c",t->data);
preordertraverse(t->lchild);
preordertraverse(t->rchild);
}
}
void inordertraverse(bit *t) {
// 中序遍历二叉树t
if (t) {
inordertraverse(t->lchild);
printf("%c",t->data);
inordertraverse(t->rchild);
}
}
void postordertraverse(bit *t) {
// 后序遍历二叉树t
if (t) {
postordertraverse(t->lchild);
postordertraverse(t->rchild);
printf("%c",t->data);
}
}
void main() {
printf("先序建树:");
bit *t=createbitree(t);
printf("\n先序遍历:");
preordertraverse(t);
printf("\n中序遍历:");
inordertraverse(t);
printf("\n后序遍历:");
postordertraverse(t);
getchar();getchar();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯