朕用的是java语言,有关于java语言的线性表操作细则如下:
然后java的线性表的两种实现:有顺序实现和链式实现。
线性表的两种实现
|
顺序表 |
链表 |
空间性能 |
顺序表的存储空间是静态分布的,需要一个固定的数组,总有部分数组元素要浪费 |
链表的存储空间是动态分布,因此不会有空间被浪费。但由于链表需要额外的空间来为每个节点保存指针,因此也要牺牲一部分空间。 |
时间性能 |
顺序表中的元素的逻辑顺序和物理存储顺序保持一致,而且支持随机存取。因此顺序表在查找,读取时候效率很快。 |
链表采用链式结构来保存表内的元素,因此在插入、删除的时候效率比较高。 |
线性表本质上是一个充当容器的工具类,当程序有一组结构相同的数据元素需要保存的时候,就可以考虑使用线性表来保存。
Java中经常使用的线性表是list,Java中list接口就是代表线性表,线性表中常见的两种实现分别是ArrayList和LinkedList,其中LinkedList是一个双向链表,而ArrayList是动态数组来实现。
根据上面的区别很容易得到下面的结论:
ArrayList实现原理是数组,有点在于遍历查找速度很快,但是对于插入和删除效率不高。
LinkedList的实现就是链表遍历和查找速度不高,但是插入和删除的效率很高。
下面是有关于实验一的东西:
实验内容:
建立 n 个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。