线性表
Posted lqkstudy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表相关的知识,希望对你有一定的参考价值。
顺序表
顺序表是采用顺序结构存储的线性表。顺序表是将所有元素放到一块连续的存储空间中,特点是存取速度快,但是不可以动态增加长度。
链表
链表是采用链式结构存储的线性表。链表中的元素在存储空间中的位置不一定是连续的,所以链表使用结点来存储元素,每个节点中还存储了相邻节点位置信息。由于不是连续存储,存取元素的速度比顺序表差。但是只要存储空间足够,链表就可以动态增加长度,也就是说,相较于顺序表,链表能更快速地进行元素的插入和删除操作。
链表需要一个头指针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
单向链表的插入分为三种情况:
在前面插入:插入结点的next指针指向第一个结点,head指针指向插入结点。
在后面插入:最后一个结点的next指针指向插入结点。
在中间插入:指定位置的前一个结点的next指针指向插入结点,插入结点的next指针指向指定位置的结点。
单向链表的删除也分为三种情况:
删除第一个结点:head指针指向下一个结点。
删除最后一个结点:倒数第二个结点的next指针置为null。
删除中间的结点:指定结点的前一个结点的next指针指向指定结点下一个结点。
单向循环链表
单向循环链表是第一个结点和最后一个结点相连的单向链表。单向循环链表最后一个结点的next指针指向第一个结点。
单向循环链表的
以上是关于线性表的主要内容,如果未能解决你的问题,请参考以下文章