03 2018 档案
摘要:在计算机科学领域中,图是最为灵活的数据结构之一。 一般来说,图在定义对象之间的关系或联系这类问题上能够作为一种模型来帮助我们。 图中的对象可以是具体的,比如网络中的结点;也可以是不具体的,比如数据库中的业务或系统中的状态。相同点是对象之间的关系和联系。网络上的结点是物理上相连接的,系统中状态之间的关
阅读全文
摘要:顾名思义,优先队列将数据按优先级顺序排列。一个优先队列由许多有序的元素构成,优先级最高的元素可以有效而快速的确定。 例如,用来做负载均衡的服务器,当连接请求到达时,优先队列可以告知当前哪台服务器是处理此连接请求最佳的服务器。一般情况下,最空闲的服务器获取的优先级最高,因为它可以最好地处理服务请求。
阅读全文
摘要:如果想了解堆的概念,可以点击此处查看前面关于堆的定义的随笔。 堆的操作接口包括初始化堆、销毁堆、向堆中插入元素、从堆顶移除元素、堆的结点个数。 我们用heap来命名一个堆。下面是对以上接口的定义: heap_init void heap_init(Heap *heap,int (*compare)(
阅读全文
摘要:堆是什么?
它是一种树形组织,使我们能迅速确定包含最大值(或最小值)的结点。
具体来说,堆是一颗左平衡的二叉树。随着结点的增加,树会逐级从左到右增长。
阅读全文
摘要:实现二叉搜索树的一种好方法是利用二叉树抽象数据类型。 我们以BisTree这个名称来代表二叉搜索树这种数据结构。通过typedef方式将BisTree(二叉搜索树)实现为BiTree(二叉树)的别名。 采用typedef方法使得二叉搜索树具有了某种程度的多态能力,如同栈和队列一样。这意味着除了专属于
阅读全文