创建树,中序输出

简介: 创建树,中序输出
#include<iostream>
using namespace std;
typedef int KeyType;
typedef struct {
    KeyType  key;
} ElemType;
typedef struct BitNode {
    ElemType data;
    struct BitNode* lchild, * rchild;
}BitNode, * BiTree;
BiTree insert(BiTree b, BiTree s)
{
    if (b == NULL) b = s;
    else if (s->data.key > b->data.key) b->rchild = insert(b->rchild, s);
    else if (s->data.key < b->data.key) b->lchild = insert(b->lchild, s);
    return b;
}
BiTree creat() {
    int k;
    BiTree t, s;
    t = NULL;
    scanf_s("%d", &k);
    while (k != -1) {
        s = (BiTree)malloc(sizeof(BitNode));
        s->data.key = k;
        s->lchild = NULL;
        s->rchild = NULL;
        t = insert(t, s);
        scanf_s("%d", &k);
    }
    return t;
}
void inorder(BiTree t) {
    if (t) {
        inorder(t->lchild);
        printf_s("%3d", t->data);
        inorder(t->rchild);
    }
}
void main() {
    BiTree t;
    printf_s("输入数据,以-1结束:");
    t = creat();
    printf_s("中序序列为:");
    inorder(t);
}

有问题留言

相关文章
|
18天前
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
|
9月前
|
存储 算法
二叉树的创建和遍历
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分
70 0
|
11月前
1366:二叉树输出(btout)
1366:二叉树输出(btout)
|
12月前
|
算法
【算法】二叉排序树:创建二叉树,并以中序遍历输出
【算法】二叉排序树:创建二叉树,并以中序遍历输出
187 0
|
机器学习/深度学习 C++ 容器
二叉树创建和遍历(C++实现)
树(Tree)是n(n≥0)个节点的有限集。在任意一棵树中有且仅有一个特定的称为根(Root)的节点;当n>1时,其余节点可分m(m>0)为个互不相交的有限集T1,T2,...,Tm;其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 二叉树(Binary Tree)是一种特殊的有序树型结构,所有节点最多只有2棵子树。
464 0
二叉树的创建,和三种递归遍历方式
二叉树的创建,和三种递归遍历方式
【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树
【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树
123 0
|
Java
输入一棵二叉树,判断该二叉树是否是平衡二叉树(Java版)/输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。(Java版)
输入一棵二叉树,判断该二叉树是否是平衡二叉树(Java版)/输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。(Java版)
107 0
Day18——找树左下角的值、路径总和、路径总和ii、从中序与后序遍历序列构造二叉树、从前序与中序遍历序列构造二叉树
Day18——找树左下角的值、路径总和、路径总和ii、从中序与后序遍历序列构造二叉树、从前序与中序遍历序列构造二叉树
73 0