本文表述了线性表及其基本操作的代码【Java实现】
参考书籍 :《数据结构 ——Java语言描述》/刘小晶 ,杜选主编
线性表需要的基本功能有:动态地增长或收缩;对线性表的任何数据元素进行访问和查找;在线性表中的任何位置进行数据元素的插入和删除操作;求线性表中指定数据元素的前驱和后继等等。
首先描述线性表的抽象类型,我们使用Java接口interface:
Ilist.java:
其次描述顺序表,其特点有:在线性表中的逻辑上相邻的数据元素,在物理存储位置上也是相邻的;存储密度高,但需要预先分配”足够应用“的存储空间,这可能将会造成存储空间的浪费;便于随机存储;不便于插入和删除,因为在顺序表中进行插入和删除操作会引起大量数据元素的移位。我们用SqList类描述顺序表:
SqList.java:
接着测试我们的顺序表,使用SqListTest类来做测试:
SqListTest.java:
运行我们的测试类,得到以下测试结果:
然后描述单链表,注意:我们推荐使用带头结点的单链表。这里总结以下关于头指针和头结点的问题:首先要清楚,head就是头指针,毋庸置疑;如果有头结点的话,head也头结点,这里头指针就是头结点,一般说成头指针指向头结点,而head.next是下标为0的元素,规定 head是下标为-1的元素;如果没有头结点的话,head本是就是下标为0的元素,这里没有头结点,但是head还是头指针。下面我们来描述结点类,它由java顺序表基础操作两部分组成,data数据域和next指针域:
Node.java:
最后测试我们的单链表,使用LinkListTest类来做测试:
LinkListTest.java
运行我们的测试类,得到以下结果:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19266.html