永发信息网

用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(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯