常用数据结构总结

小明:最近常有人讨论数据结构和算法,听他们讨论时总是感觉晕乎好多都不懂,可以普及一下吗?

老师:难得你这么爱学习,我们今天就普及一下数据结构的基础知识。

数据结构与算法是程序设计的两大基础,是否熟练掌握可以在一定程度上证明你是否有良好的逻辑思维。我们先看一下常用数据结构和算法的整体内容。

常用数据结构总结

1.数据的逻辑结构

集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。

线性结构:帮别人存储的数据之间是有顺序的,数据之间在逻辑上是首尾相接的连续保存的。所以,元素之间存在着一对一的关系。比如数组、队列、栈、链表就是线性结构。

树形结构:树形结构存储元素存在着一对多的相互关系,比如我们经常说的红黑树就是自平衡的查找二叉树

图状结构:结构中的数据元素之间存在着多对多的任意关系 

2.数据的存储结构

存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。

1. 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之间的关系由存储单元的邻接关系来体现。其优点是可以实现随机存取,每个元素占用最少的存储空间;缺点是只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。

2. 链接存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针表示元素之间的逻辑关系。其优点是不会出现碎片现象,充分利用所有存储单元;缺点是每个元素因存储指针而占用额外的存储空间,并且只能实现顺序存取。

3. 索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式是:(关键字,地址)。其优点是检索速度快;缺点是增加了附加的索引表,会占用较多的存储空间。另外,在增加和删除数据时要修改索引表,因而会花费较多的时间。

3.数据的运算

施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

关注微信公众号和今日头条,精彩文章持续更新中。。。。。

常用数据结构总结

常用数据结构总结

常用数据结构总结