软件开发的数据结构

常见数据结构,数组、链表、栈、队列、树、堆、图、哈希表

软件开发的数据结构

①、数组

优点:

  • 按照索引查询元素的速度很快;

  • 按照索引遍历数组也很方便。

缺点:

  • 数组的大小在创建后就确定了,无法扩容;

  • 数组只能存储一种类型的数据;

  • 添加、删除元素的操作很耗时间,因为要移动其他元素

②、链表

链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该节点还有一个元素和一个指向另一条链表的引用,

这是一种双向链表,当前元素 item 既有 prev 又有 next,不过 first 的 prev 为 null,last 的 next 为 null。如果是单向链表的话,就只有 next,没有 prev。

软件开发的数据结构

 

优点:

  • 不需要初始化容量;

  • 可以添加任意元素;

  • 插入和删除的时候只需要更新引用。

缺点:

  • 含有大量的引用,占用的内存空间大;

  • 查找元素需要遍历整个链表,耗时。

③、栈

栈按照“后进先出”、“先进后出”的原则来存储数据,先插入的数据被压入栈底,后插入的数据在栈顶,读出数据的时候,从栈顶开始依次读出

软件开发的数据结构

④、队列

队列会对两端进行定义,一端叫队头,另外一端就叫队尾。队头只允许删除操作(出队),队尾只允许插入操作(入队)

软件开发的数据结构

⑤、树

树是一种典型的非线性结构,它是由 n(n>0)个有限节点组成的一个具有层次关系的集合

软件开发的数据结构

⑥、堆

  • 堆中某个节点的值总是不大于或不小于其父节点的值;

  • 堆总是一棵完全二叉树

⑦、图

图是一种复杂的非线性结构,由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合

软件开发的数据结构

 

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34070 人正在系统学习中

来源:ejinxian

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月7日
下一篇 2021年4月8日

相关推荐