二叉排序树 二叉排序树介绍: 比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为: 二叉排序树创建和遍历: 二叉排序树的删除: 二叉排序树的删除情况比较复杂,有下面三种情况需要考虑: 4) 操作的思路分析: 代码实现: ...
分类:
编程语言 时间:
2020-04-28 00:14:25
阅读次数:
58
一、思维导图: 二、重要概念: 1、二叉树的五种基本形态: 2、前、中、后序遍历: 1.1前序遍历 根节点 左子树 右子树 1.2中序遍历 左子树 根节点 右子树 1.3后序遍历 左子树 右子树 根节点 2、ASL计算: 如图所示的二叉排序树,其成功的平均查找长度是 ; 不成功的平均查找长度是 。 ...
分类:
编程语言 时间:
2020-04-26 21:14:49
阅读次数:
70
二叉排序树 1. 基本介绍 二叉排序树:BST,对于二叉排序树的任何一个非叶子结点,要求左子结点的值比当前结点的值小,右子结点的值比当前结点的值大 特别说明:若有相同的值,可以将该结点放在左子结点或右子结点 2. 二叉排序树的创建和遍历 ...
分类:
编程语言 时间:
2020-04-24 20:17:44
阅读次数:
62
树的实际应用 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序属于选择排序,其最好、最坏、平均时间复杂度均为 O(nlogn) ,他也是 不稳定排序 1. 堆介绍及最大最小堆 堆是具有以下性质的完全二叉树 每个结点的值都大于或等于其左右孩子结点的值,称为大项堆 每个结点的值都小于等于其 ...
分类:
编程语言 时间:
2020-04-24 20:06:27
阅读次数:
68
题目:从键盘接受输入,每个节点所含数据元素均为单字符,要完成:建立一棵二叉链表表示方式存储的二叉排序树,并打印输出对其由大到小遍历的结果。测试数据:输入 EFHJBCAGID,符号“@”表示结束字符 分析:方法一:中序遍历该二叉排序树,即可得到由小到大遍历的结果,并将每个结果都存放在一个栈中,然后再 ...
分类:
编程语言 时间:
2020-04-22 20:24:01
阅读次数:
138
插入排序 直接插入排序,折半插入排序,2-路插入排序,希尔排序 快速排序 冒泡排序,快速排序(冒泡排序改进), 选择排序 简单选择排序,树形选择排序,堆排序 归并排序 基数排序 ...
分类:
编程语言 时间:
2020-04-20 13:41:41
阅读次数:
63
前言 《编程珠玑》确实是一本好书,它里面对算法和数据结构的解读,对问题的分析可以很好帮助编程人员转变以往对数据结构和算法的态度发生改变,转向重视;本文重点谈谈里面的查找和排序; 查找 查找,查找之中,最重要的概念是二分查找,很多数据结构其实都应用了二分查找的理念,例如跳表、红黑树、B+树 应用:数据 ...
分类:
编程语言 时间:
2020-04-20 01:04:55
阅读次数:
97
一、SearchBST(T, key)与InsertBST(T, key) 二、CreateBST(T)并中序输出 三、DeleteBST(T, key)的伪代码 四、DeleteBST(T, key)的函数实现 ...
分类:
编程语言 时间:
2020-04-19 22:35:39
阅读次数:
94
一.二叉排序树的结点类型 typedef struct node{ KeyType key; struct node lchild, rchild; }BSTNode; typedef int KeyType; 二.SearchBST(T, key) 1.伪代码 SearchBST(BSTNode ...
分类:
编程语言 时间:
2020-04-19 22:16:04
阅读次数:
112
二叉排序树的实现 1.1. 编写SearchBST(T, key)与InsertBST(T, key)的伪代码,并实现; InsertBST(T, key){ if(T为空) {创建一个新结点BSTNode; T=key=k; p->lchild=p->rchild=NULL;} else if(k ...
分类:
编程语言 时间:
2020-04-19 22:15:26
阅读次数:
84