
数据结构
二十七º
嘿咻嘿咻!
展开
-
二叉树
树是一种数据结构,再介绍二叉树之前,先解释一下什么是树;1.树由 根结点 开始,它从 根结点 一直延申到 叶结点结束,根结点 与 叶结点之间的结点统称为 内部结点;2.树的每一个结点上都可以存储数据,同时存储着下一个 子节点 的地址,因此 树 可以看作是由一个根结点起始的 多条多向链表;3.从图的概念来看,树也可以看作是 不包含回路的连通无向图;有关树的基础概念:根节点:一棵树只有一...原创 2019-06-04 00:17:14 · 246 阅读 · 0 评论 -
单链表、双链表、循环链表
这学期的数据结构课有讲到链表,所以再来温故一下,毕竟温故知新嘛。链表与数组的区别链表和数组都是线性表,两者区别如下:数组静态分配内存,链表动态分配内存;更进一步说就是数组不易拓展,但链表易拓展。数组在内存中连续,链表不连续;更进一步说就是数组可能会造成内存浪费,但链表的内存利用率高;数组利用下标定位元素,时间复杂度为O(1),链表在最坏情况下是O(n);即在随机性查找上数组比链表更...原创 2019-09-20 20:48:04 · 2643 阅读 · 3 评论 -
链表再讲----数组模拟链表
算法导论上有关链表讲的已经很好了,总结一下。1.链表实现栈和队列以单链表为例:栈的话就是先入先出,入的元素插在链表尾部,出的元素从链表尾部删除。Push :insert(L,n)。Pop : delete(L,n)。队列的实现与栈类似,入的元素插在链表尾部,出的元素从链表头部删除。Push :insert(L,n)。Pop :delete(L,0)。2.模拟链表C/C...原创 2019-09-21 10:28:43 · 356 阅读 · 0 评论 -
散列表----散列函数与用链接法解决冲突
散列表是实现字典操作的一种有效数据结构,你可以把它和STL中的map或者Python中的字典dict相联系。散列表类似于字典的目录,每个查找元素都有一个key与之对应。尽管在最坏情况下散列表查找一个元素的时间与链表持平,达到O(n),然而在实际应用中,散列表的性能是极好的,在一些合理的假设下,在散列表中查找一个元素的平均时间是O(1)。散列表是普通数组概念的推广,由于普通数组可以直接寻址,从而...原创 2019-09-22 19:48:28 · 1461 阅读 · 0 评论