数据结构
无香菜不欢
多读书,少说话
到点睡觉,按时吃饭。
展开
-
算法复杂度O(1),O(n),O(logn),O(nlogn)的含义
时空复杂度概述首先o(1), o(n), o(logn), o(nlogn)是用来表示对应算法的时间复杂度,这是算法的时间复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行这个算法所需要的计算工作量; 空间复杂度是指执行这个算法所需要的内存空间; 时间和空间都是计算机资源的重...原创 2019-10-28 09:35:38 · 6870 阅读 · 0 评论 -
优先队列和堆
什么是优先队列?听这个名字就能知道,优先队列也是一种队列,只不过不同的是,优先队列的出队顺序是按照优先级来的;在有些情况下,可能需要找到元素集合中的最小或者最大元素,可以利用优先队列ADT来完成操作,优先队列ADT是一种数据结构,它支持插入和删除最小值操作(返回并删除最小元素)或删除最大值操作(返回并删除最大元素);这些操作等价于队列的enQueue和deQueue操作,区别在于,对于优先...原创 2019-10-27 23:56:20 · 203 阅读 · 0 评论 -
树(二叉、二叉搜索树)
树什么是树树是一种类似于链表的数据结构,不过链表的结点是以线性方式简单地指向其后继结点,而树的一个结点可以指向许多个结点;数是一种典型的非线性结构;树结构是以表达具有层次特性的图结构的一种方法;相关术语根节点:根节点是一个没有双亲结点的结点,一棵树中最多有一个根节点(如上图的结点A就是根节点); 边:边表示从双亲结点到孩子结点的链接(如上图中所有的链接); 叶子结点:...转载 2019-10-27 15:29:26 · 155 阅读 · 0 评论 -
栈和队列
栈什么是栈栈是一种用于存储数据的简单数据结构(与链表类似)。数据入栈的次序是栈的关键。可以把一桶桶装的薯片看作是一个栈的例子,当薯片做好之后,它们会依次被添加到桶里,每一片都会是当前的最上面一片,而每次我们取的时候也是取的最上面的那一片,规定你不能破坏桶也不能把底部捅穿,所以第一个放入桶的薯片只能最后一个从桶里取出;定义:栈(Stack)是一个有序线性表,只能在表的一端(称为栈顶,...转载 2019-10-27 12:33:48 · 104 阅读 · 0 评论 -
数组与链表
数组什么是数组?数组简单来说就是将所有的数据排成一排存放在系统分配的一个内存块上,通过使用特定元素的索引作为数组的下标,可以在常数时间内访问数组元素的这么一个结构;为什么能在常数时间内访问数组元素?为了访问一个数组元素,该元素的内存地址需要计算其距离数组基地址的偏移量。需要用一个乘法计算偏移量,再加上基地址,就可以获得某个元素的内存地址。首先计算元素数据类型的存储大小,然后将...转载 2019-10-27 10:59:00 · 449 阅读 · 0 评论