《JAVA数据结构和算法》 拉佛[作者] PDF 百度云盘分享下载
![《JAVA数据结构和算法》 拉佛[作者] PDF 百度云盘分享下载-十分悦读](https://b.mxblog.com.cn/wp-content/uploads/2021/03/2021030704173015.jpg)
Java数据结构和算法(第二版·影印版),ISBN:9787508356440,作者:(美)拉佛
数据结构分两种:
线性结构
这是最常用的数据结构,特点是数据元素之间是一对一的线性关系(a[0]=30)。体现为数组、队列、链表、栈等。线性结构有两种不同的存储结构:顺序存储结构、链式存储结构
非线性结构
数据元素之间不是一对一的线性关系。体现为二维数组、广义表、树结构等。
I 线性结构
这是最常用的数据结构,特点是数据元素之间是一对一的线性关系(a[0]=30)。体现为数组、队列、链表、栈等。
线性结构有两种不同的存储结构:顺序存储结构、链式存储结构
顺序存储的线性表称为顺序表,表中的存储元素是连续的(更主要指元素的地址是连续的)。
优点:存储密度大=1,存储空间利用概率高。
链式存储的线性表称为链表,表中存储的元素不一定是联系的,元素节点中存放的是数据元素以及相邻元素的地址信息。
优点:插入或删除元素方便效率高,使用灵活
备注:链式要存储相邻元素地址非常重要,因为如果与相邻元素没有关系就是一个个孤立的元素就无法沟通链式结构了,看到上述加粗字体,应联想到与顺序存储结构在查找、插入效率上的区别,想象其结构图形更能推论出链式在查找上对算法依赖的重要。
想象顺序存储结构:相邻的数据元素,物理存储位置也相邻,依次排列,在顺序表中做插入、删除操作时,平均移动表中的一半元素(要看插入和删除的位置),因此对n较大的顺序表效率低。即插入或删除元素效率不高,适合查找操作。
想象链式存储结构:插入、删除运算应该方便,因为其他元素不用依次位移。但因为数据之前没有依次排列所以存储密度低。即存储空间利用率低,适合插入、删除元素操作,查找效率一般。
总结:数据量小的时候首选顺序存储结构,比如ArrayList,数据量大且插入、删除频繁时选用链式存储结构,比如LinkedList。
下载地址
链接: https://pan.baidu.com/s/1r_S3cIXJDM0g1WgvoWWfeg 提取码: 73dj
本文系作者 @梦溪 原创发布在 十分悦读。未经许可,禁止转载。