摘要: 堆是什么? 它是一种树形组织,使我们能迅速确定包含最大值(或最小值)的结点。 具体来说,堆是一颗左平衡的二叉树。随着结点的增加,树会逐级从左到右增长。 阅读全文
posted @ 2018-03-13 06:19 DreamGo 阅读(2208) 评论(0) 推荐(0) 编辑
摘要: 实现二叉搜索树的一种好方法是利用二叉树抽象数据类型。 我们以BisTree这个名称来代表二叉搜索树这种数据结构。通过typedef方式将BisTree(二叉搜索树)实现为BiTree(二叉树)的别名。 采用typedef方法使得二叉搜索树具有了某种程度的多态能力,如同栈和队列一样。这意味着除了专属于 阅读全文
posted @ 2018-03-11 06:43 DreamGo 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 一颗子树的根结点的平衡因子就代表该子树的平衡性。 保持所有子树几乎都处于平衡状态,AVL树在总体上就能够基本保持平衡。 阅读全文
posted @ 2018-01-30 06:31 DreamGo 阅读(13502) 评论(2) 推荐(4) 编辑
摘要: 二叉搜索树是由二叉树组成的专用于查找和搜索目的的一种高效数据结构。 阅读全文
posted @ 2018-01-18 07:05 DreamGo 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 计算机求解算术表达式,一种自然的方法是采用表达式树。 阅读全文
posted @ 2018-01-17 21:12 DreamGo 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 结构体BiTreeNode代表二叉树中的一个单独的结点,这个结构体由上述的3个成员组成。 结构体BiTree代表二叉树这种数据结构。这个结构体包含4个成员:size表示树中的结点的个数,compare成员在二叉树中暂时不会用到,而是等到其他数据类型继承二叉树时才会派上用场。destroy作为参数传递给bitree_init函数。最后,root是一个指向结点层次体系中最高点的指针,也就是指向根结点的指针。 阅读全文
posted @ 2018-01-10 06:36 DreamGo 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 这组接口提供了对二叉树的基本操作和一些简单属性,比如二叉树的初始化、销毁、叶子结点(注意是叶子结点)的插入、删除、合并,属性包括树的结点个数、树的根结点、树的分支结束标识、叶子结点的标识、结点中的数据、结点的左子结点、右子结点。 阅读全文
posted @ 2018-01-08 08:38 DreamGo 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 开地址哈希表的基本的操作包括:初始化开地址哈希表、销毁开地址哈希表、插入元素、删除元素、查找元素、获取元素个数。 阅读全文
posted @ 2017-12-26 12:44 DreamGo 阅读(1031) 评论(1) 推荐(0) 编辑
摘要: 树由称为结点的元素按照层次结构的方式组织而成。层次结构最顶端的结点称为根。与根结点直接相连的结点称为根的子结点,通常子结点本身也有属于它们自己的子结点。除了根结点外,在这个层次体系中的每个结点都有唯一的父结点,也就是与其直接相连的上级结点。 阅读全文
posted @ 2017-12-26 08:27 DreamGo 阅读(1087) 评论(0) 推荐(1) 编辑
摘要: 在开地址哈希表中,元素存放在表本身中。这对于某些依赖固定大小表的应用来说非常有用。因为不像链式哈希表在每个槽位上有一个“桶”来存储冲突的元素,所以开地址哈希表需要通过另一种方法来解决冲突。 阅读全文
posted @ 2017-12-16 08:48 DreamGo 阅读(2083) 评论(0) 推荐(0) 编辑