博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据结构】——排序二叉树
阅读量:5155 次
发布时间:2019-06-13

本文共 1702 字,大约阅读时间需要 5 分钟。

  排序二叉树即在构建二叉树的时候就对二叉树进行排序了,当中序遍历二叉树的时候即可得到一个有序的数列;

  排序二叉树的规则就是:

  若他的左子树不空,则左子树上所有结点的值均小于它的根结构的值;

  若他的右子树不空,则右子树上所有结点的值均大于它的根结点的值;

  它的左、右子树也分别为二叉排序树;

  从二叉排序树的定义也可以知道,它前提是二叉树,然后它采用了递归的定义方法,再者,它的结点间满足一定得次序关系,左子树结点一定比其双亲结点小,右子树结点一定比其双亲结点打。

  代码实现如下:

1 void Create_Sort_Tree(BiTree **t, int value) 2 { 3     if(*t == NULL){ 4         *t = (BiTree *)malloc(sizeof(BiTree)); 5         (*t)->item = value; 6         (*t)->lchild = NULL; 7         (*t)->rchild = NULL; 8     } 9     else{10         if((*t)->item > value)11             Create_Sort_Tree(&(*t)->lchild, value);12         else13             Create_Sort_Tree(&(*t)->rchild, value);    14     }15 }

  用递归的思想,在创建的时候即排序;

  完整实例如下:

1 #include 
2 #include
3 4 typedef struct BiTree{ 5 int item; 6 struct BiTree *lchild,*rchild; 7 }BiTree; 8 9 void Create_Sort_Tree(BiTree **t, int value)10 {11 if(*t == NULL){12 *t = (BiTree *)malloc(sizeof(BiTree));13 (*t)->item = value;14 (*t)->lchild = NULL;15 (*t)->rchild = NULL;16 }17 else{18 if((*t)->item > value)19 Create_Sort_Tree(&(*t)->lchild, value);20 else21 Create_Sort_Tree(&(*t)->rchild, value); 22 }23 }24 25 void lar(BiTree *t)26 {27 if(t == NULL)28 return;29 else{30 lar(t->lchild);31 printf("%d\t",t->item);32 lar(t->rchild);33 }34 35 }36 37 int main(void)38 {39 int i;40 BiTree *t = NULL;41 int value[] = {
5,8,14,36,21,1,3};42 for(i = 0;i < 7;i++)43 Create_Sort_Tree(&t,value[i]); 44 lar(t);45 printf("\n");46 }

 

转载于:https://www.cnblogs.com/ngnetboy/p/3161758.html

你可能感兴趣的文章
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
w3m常用快捷键
查看>>
【Unity 3D】学习笔记四十一:关节
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
js对象属性方法
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
Maven安装配置
查看>>
ORA-10635: Invalid segment or tablespace type
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Windows 8 操作系统 购买过程
查看>>
软件工程课程-个人编程作业
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>