
数据结构
阎楠
天生我材必有用,葡萄美酒夜光杯
展开
-
数据结构-二叉搜索树的实现
定义二叉搜索树(Binary Search Tree,BST),也称为二叉排序树或二叉查找树。相较于普通的二叉树,非空的二叉搜索树有如下性质: 非空左子树的所有键值小于其根结点的键值; 非空右子树的所有键值大于其根结点的键值; 左右子树均为二叉搜索树; 树中没有键值相等的结点。原创 2017-10-27 23:55:56 · 676 阅读 · 0 评论 -
数据结构-栈&队列&Deque实现比较
对于栈和队列这两种特殊的数据结构,由于获取(查找)元素的位置已经被限定,因此采用顺序存储结构并没有非常大的优势,反而是在添加元素由于数组容量的问题还会带来额外的消耗;因此,在无法预先知道数据容量的情况下,使用链式结构实现栈和队列应该是更好的选择原创 2017-10-22 22:35:33 · 756 阅读 · 0 评论 -
栈和队列的相互实现
前言栈和队列作为两种典型的线性表,有着非常鲜明甚至可以说是相互对立的特点;栈先进后出(后进先出),队列先进先出(后进后出)。因此,对相同的输入,两者会产生恰好截然相反的输出。例如,对于给定的序列”ABCDE”,如果按照字母顺序将这个5个元素依次入栈,然后再依次出栈,那么得到的输出将是”EDCBA”,而如果将5个元素意思压入队列,然后依次弹出,那么得到的输出将是”ABCDE”。正是因为这种截然相对的输原创 2017-10-22 22:45:20 · 977 阅读 · 0 评论 -
数据结构-平衡二叉树
定义平衡二叉树,是对二叉搜索树的一种优化。向二叉搜索树中插入元素时,不同的插入次序,将构造出不同结构的树。通俗来讲,就是会导致树的深度和平均查找长度(ASL averge search length)不同;以下图为例。明显可以看出,中间(b)这种结构是比较好的。整个二叉搜索树左右两边显得比较平均,不像最后一种完全成了一颗右斜树,或者说是单向链表,同时也可以看到其ASL=3.0 是这三种结构中最小的。原创 2017-10-31 23:35:00 · 622 阅读 · 0 评论 -
数据结构-二叉树的存储结构与遍历
一个有穷的结点集合,可以为空。若不为空,则它是由根结点和称为其左子树和右子树的两个互不相交的二叉树组成。原创 2017-10-24 23:51:34 · 729 阅读 · 0 评论 -
数据结构-堆
对于堆(Heap)这种数据结构,从根节点到任意结点路径上所有的结点都是有序的。堆的ADT堆的实现堆是用数组实现的完全二叉树原创 2017-11-03 22:30:28 · 987 阅读 · 0 评论