二叉排序树 痛定思痛。 2022-05-31 01:58 138阅读 0赞 * 题目描述 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。 * 输入 输入第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。 * 输出 可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树, 并对二叉排序树进行前序、中序和后序遍历。 每种遍历结果输出一行。每行最后一个数据之后有一个空格。 输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。 * 样例输入 5 1 6 5 9 8 * 样例输出 1 6 5 9 8 1 5 6 8 9 5 8 9 6 1 * 代码 #include <stdio.h> #include <stdlib.h> typedef struct BiNode{ int data; struct BiNode * lchild; struct BiNode * rchild; } * BiTree, BiNode; void insert(BiTree T, int a){ if(a < T->data){ if(T->lchild == NULL){ T->lchild = (BiTree)malloc(sizeof(BiNode)); T->lchild->data = a; T->lchild->lchild = NULL; T->lchild->rchild = NULL; } else insert(T->lchild, a); } else if(a > T->data){ if(T->rchild == NULL){ T->rchild = (BiTree)malloc(sizeof(BiNode)); T->rchild->data = a; T->rchild->lchild = NULL; T->rchild->rchild = NULL; } else insert(T->rchild, a); } else return; } void PreOrder(BiTree T){ if(T != NULL){ printf("%d ",T->data); PreOrder(T->lchild); PreOrder(T->rchild); } } void InOrder(BiTree T){ if(T != NULL){ InOrder(T->lchild); printf("%d ",T->data); InOrder(T->rchild); } } void PostOrder(BiTree T){ if(T != NULL){ PostOrder(T->lchild); PostOrder(T->rchild); printf("%d ",T->data); } } int main(int argc, const char * argv[]) { int n; while(scanf("%d", &n) != EOF){ int a[n]; for(int i = 0;i < n;i ++) scanf("%d", &a[i]); BiTree T; T = (BiTree)malloc(sizeof(BiNode)); T->data = a[0]; T->lchild = NULL; T->rchild = NULL; for(int i = 1;i < n;i ++) insert(T, a[i]); PreOrder(T); printf("\n"); InOrder(T); printf("\n"); PostOrder(T); printf("\n"); } return 0; } * 总结 注意题目说重复的要删除
相关 二叉树和排序二叉树 二叉树 > 相关名词 > > 根节点 > > 左叶子节点 > > 右叶子节点 > > 子树 > > 高度 > 二叉树的排序方式: > > - 广度遍历( 灰太狼/ 2023年08月17日 16:53/ 0 赞/ 91 阅读
相关 二叉排序树 \define FALSE 0 \define TRUE 1 \define ElemType int \define Status int \define EQ(a, 你的名字/ 2022年08月25日 05:29/ 0 赞/ 152 阅读
相关 二叉排序树 Problem Description 二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它 偏执的太偏执、/ 2022年07月12日 07:48/ 0 赞/ 137 阅读
相关 二叉排序树 Problem Description 二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 怼烎@/ 2022年07月12日 03:54/ 0 赞/ 140 阅读
相关 二叉排序树 二叉排序树(Binary Sort Tree)性质: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的 r囧r小猫/ 2022年06月16日 08:58/ 0 赞/ 165 阅读
相关 二叉排序树 题目描述 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。 输入 输入第一行包括一个整数n(1<=n<=100)。 接下来的一行包 痛定思痛。/ 2022年05月31日 01:58/ 0 赞/ 139 阅读
相关 二叉树-详解二叉排序树 二叉搜索树 首先二叉排序树也是一棵二叉树,所谓二叉树,就是“任何节点最多只允许两个子节点”,这两个子节点称为左右子节点。如下便是一个二叉树。 ![这里写图片描述][2 旧城等待,/ 2022年05月17日 01:18/ 0 赞/ 284 阅读
相关 二叉排序树 include<iostream> using namespace std; struct BiTree { in 拼搏现实的明天。/ 2022年05月14日 23:12/ 0 赞/ 198 阅读
相关 二叉排序树 二叉排序树BST,又叫二叉搜索树 或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空 川长思鸟来/ 2022年02月24日 07:48/ 0 赞/ 209 阅读
还没有评论,来说两句吧...