码迷,mamicode.com
首页 > 其他好文 > 详细

线性表

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

标签:情况   nbsp   位置   str   第一个   data   就是   public   保存   

顺序表

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

链表

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

  链表需要一个头指针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指针指向第一个结点。

  技术图片

  单向循环链表的

 

线性表

标签:情况   nbsp   位置   str   第一个   data   就是   public   保存   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!