数据结构—二叉排序树

原理:参考趣学数据结构

代码:

#include<stdio.h>
#include<stdlib.h>
typedef struct bstTree {int data;struct bstTree* lchild, *rchild;
}bstTree;
void createBSTTree(bstTree* & T,int data) {//创建二叉排序树bstTree *p = NULL;if (!T) {p = (bstTree*)malloc(sizeof(bstTree));p->data = data;p->lchild = p->rchild = NULL;T = p;return;}if (data < T->data) {//左子树插入createBSTTree(T->lchild,data);}else {//右子树插入createBSTTree(T->rchild,data);}
}
void prePrint(bstTree* & BSTTree) {//前序遍历二叉排序树if (BSTTree) {printf("%d ", BSTTree->data);prePrint(BSTTree->lchild);prePrint(BSTTree->rchild);}
}
int main() {bstTree* T=NULL;//一定要初始化为空树int count,data;printf("开始构造二叉排序树:\n输入二叉排序树结点的数目:");scanf_s("%d", &count);while (count--) {//构造二叉排序树printf("输入二叉排序树的第%d个结点:",count+1);scanf_s("%d", &data);createBSTTree(T,data);}printf("前序遍历二叉排序树\n");prePrint(T);//前序遍历二叉排序树printf("\n");system("pause");return 0;
}

测试截图:

时间复杂度O(nlogn),空间复杂度O(1)

如果存在什么问题,欢迎批评指正!谢谢

数据结构---二叉排序树相关推荐

  1. 数据结构题及c语言版实验报告排序,数据结构二叉排序树实验报告

    <数据结构二叉排序树实验报告>由会员分享,可在线阅读,更多相关<数据结构二叉排序树实验报告(7页珍藏版)>请在装配图网上搜索. 1.实验报告课程名:数据结构(C语言版)实验名: ...

  2. 数据结构二叉排序树建立_数据结构101什么是二叉搜索树

    数据结构二叉排序树建立 In everyday life, we need to find things or make decisions, and one way to make that pro ...

  3. 索引介绍、索引原理、索引的数据结构(二叉排序树、平衡二叉树、B树、B+树)

    引入 本篇博客偏理论, 将会介绍一下知识: 索引介绍 索引原理 索引的数据结构(二叉树->平衡二叉树->B树->B+树) 聚集索引与辅助索引 MySQL索引管理 创建和删除索引的语法 ...

  4. 数据结构 - 二叉排序树

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 二叉排序 ...

  5. 数据结构-二叉排序树

    二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值: (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值: ...

  6. 数据结构 - 二叉排序树BST(创建、遍历、删除节点)

    数组与链表区别: 二叉排序树的创建和遍历 代码实现 package tree.binarysorttree;public class BinarySortTreeDemo {public static ...

  7. 浅谈数据结构-二叉排序树

    构造二叉排序树目的是为了提高查找.插入和删除的效率.其实在构建二叉排序树的时候已经暗藏着排序.因此二叉排序树具有以下几个特点: 如根节点有左子树,则左子树的所有结点都比根节点小. 如根节点有右子树,则 ...

  8. 数据结构——二叉排序树

    二叉排序树的定义如下: 二叉排序树定义 --摘自百度百科 简单的来讲,就是对一个一个结点来讲,左子树比他小,右子树比他大.这样的树就是一颗二叉排序树. 例如:下面的数组组成的二叉排序树是什么? 28, ...

  9. 数据结构二叉排序树的查找

    1.二叉排序树的查找 (1)非递归方式(最坏空间复杂度O(1)) typedef struct BSTNode{int key;struct BSTNode *lchild, *rchild; }BS ...

最新文章

  1. Docker(十):Docker实战 Docker 安装 Nginx
  2. 100.X86的寻址方式
  3. CTFshow 命令执行 web120
  4. [OSG]OSG的相关扩展
  5. 常用WebService一览表
  6. html前台检验特殊字符正则,【Qt编程】html特殊字符及正则表达式
  7. 消息队列面试 - 如何保证消息的顺序性?
  8. mitmproxy https抓包的原理是什么?
  9. Python学习入门基础:一篇文章搞定函数基础、函数进阶
  10. Go 面试专题 | slice 扩容后的内存容量如何计算?
  11. 计算机二级数据模型三要素,2017年计算机二级公共基础知识重点讲解:数据模型...
  12. FPGA设计注意事项
  13. ora-12505报错解决方法(转)
  14. python读取csv文件
  15. 新浪和腾讯微博开放平台比较
  16. 空间解析几何 | 经典例题、李林880例题
  17. go chan 类型用法
  18. 微信分享网页时自定义标题描述和图片
  19. item_search_img - 按图搜索义乌购商品(拍立淘)
  20. 关于网线水晶头的接法详解(2)

热门文章

  1. Android之学习安卓每天成长笔记
  2. hse不起振 stm8_STM8S207使用外部24M晶振不起振的解决办法
  3. python逐行读取excel_python对execl 处理操作代码
  4. 为什么说,每个人都应该多读些书?
  5. 30张不明觉厉的照片,看几遍终于看懂了
  6. 这个女生躲在衣柜等男友回家,结果竟是......
  7. 一晚啪了5只喵,累到在医院打点滴,这中国喵把英国人看傻了 | 今日最佳
  8. 人生苦短,我用Python!
  9. curd什么意思中文_每日一句英译英:She's a ten什么意思?
  10. java 推送数据给js,Node.js实现数据推送