创建树,中序输出

简介: 创建树,中序输出
#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);
}

有问题留言

相关文章
|
6月前
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
|
6月前
|
机器学习/深度学习 C++
初阶数据结构之---二叉树链式结构(二叉树的构建,二叉树的前序,中序,后序和层序遍历,计算二叉树结点个数,第k层结点个数,叶子结点个数,判断是否为完全二叉树)
初阶数据结构之---二叉树链式结构(二叉树的构建,二叉树的前序,中序,后序和层序遍历,计算二叉树结点个数,第k层结点个数,叶子结点个数,判断是否为完全二叉树)
|
存储 算法
二叉树的创建和遍历
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分
90 0
|
算法
【算法】二叉排序树:创建二叉树,并以中序遍历输出
【算法】二叉排序树:创建二叉树,并以中序遍历输出
215 0
|
机器学习/深度学习 C++ 容器
二叉树创建和遍历(C++实现)
树(Tree)是n(n≥0)个节点的有限集。在任意一棵树中有且仅有一个特定的称为根(Root)的节点;当n>1时,其余节点可分m(m>0)为个互不相交的有限集T1,T2,...,Tm;其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 二叉树(Binary Tree)是一种特殊的有序树型结构,所有节点最多只有2棵子树。
649 0
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数
先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数
600 0
先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数