首页 > 其他 > 详细

线性表

时间:2019-09-14 00:15:56      阅读:74      评论:0      收藏:0      [点我收藏+]

顺序表

  顺序表是采用顺序结构存储的线性表。顺序表是将所有元素放到一块连续的存储空间中,特点是存取速度快,但是不可以动态增加长度。

链表

  链表是采用链式结构存储的线性表。链表中的元素在存储空间中的位置不一定是连续的,所以链表使用结点来存储元素,每个节点中还存储了相邻节点位置信息。由于不是连续存储,存取元素的速度比顺序表差。但是只要存储空间足够,链表就可以动态增加长度,也就是说,相较于顺序表,链表能更快速地进行元素的插入和删除操作。

  链表需要一个头指针head来表示链表的第一个结点。根据结点中存储的相邻结点信息的不同,链表又可以细分为单向链表和双向链表。若链表的第一个结点和最后一个结点相连,则该链表又可以称为循环链表。

单向链表

  单向链表的结点中只保存了直接后继结点的位置信息。也就是说,结点中有一个next指针指向该结点的直接后继结点,若该结点是最后一个结点,则next取null。

  技术分享图片

  单向链表的结点结构定义如下:

技术分享图片
 1 public class LNode<E> {
 2 
 3     public E data;
 4 
 5     public LNode<E> next;
 6 
 7     public LNode(E data) {
 8         this.data = data;
 9     }
10 
11 }
LNode

  单向链表的插入分为三种情况:

  在前面插入:插入结点的next指针指向第一个结点,head指针指向插入结点。

  技术分享图片

  在后面插入:最后一个结点的next指针指向插入结点。

  技术分享图片

  在中间插入:指定位置的前一个结点的next指针指向插入结点,插入结点的next指针指向指定位置的结点。

  技术分享图片

  单向链表的删除也分为三种情况:

  删除第一个结点:head指针指向下一个结点。

  技术分享图片

  删除最后一个结点:倒数第二个结点的next指针置为null。

  技术分享图片

  删除中间的结点:指定结点的前一个结点的next指针指向指定结点下一个结点。

  技术分享图片

单向循环链表

  单向循环链表是第一个结点和最后一个结点相连的单向链表。单向循环链表最后一个结点的next指针指向第一个结点。

  技术分享图片

  单向循环链表的

 

线性表

原文:https://www.cnblogs.com/lqkStudy/p/11518006.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!