快速理解数据结构中链表

组织数据作用的线性表分为顺序表和链表

顺序表:平常所使用的各类数组均为顺序表,即存储逻辑顺序和物理顺序相同。较常见,不再多提。

链表:又分为单链表,循环链表,双链表。 不一定物理相邻。

      所谓链接的手段或者说方式,外界展现的就是以对象存储对象的形式(本质:引用地址的相互关联),更通俗一些就是一个对象  是他逻辑排序上一个(双链表:包含下一个)对象的属性,即每个对象以属性的方式存储了逻辑相邻的对象。 

      *在JAVA中专业术语叫通过对象引用(指针的表现方式)进行指针(实际地址的存储位置)的链接。  这个对象叫结点:一个数据加一个指针(即数据+位  置)。

      通过这种方式,在链表类设计中,就是通过一个位置标记(表现为一个对象),来互相检索,插入,删除等。

      (比如:现在位置在第2个对象,你想检索第5个对象,顺序表只需用索引【4】搞定,链表则通过逻辑关系,因为第2个包含第3个对象(地址) ,  第3个属性中能提取出第4个,以此类推)




        1.下面讲 单,双,循环的区别:

        单指方向单即只能向后查找,就是前边所说的2包括3,3包括4,最后一个为空,单向。

        循环就是在单基础上末尾保存了头对象。

        双也就是前后都可以查找,区别就是在属性里1包括2,也包括末尾;2包括1也包括3;类推

        2.所有链表都可分为带头结点,和不带头结点方式,区别就是带头结点的头指针指向一个没数据只有地址的对象。应用都一  样,  就是构造方式在插入第一个对象的时候有区别,带头结点方式因为插入第一个时不用更换头结点(也就是前边说的通过位置标  记的起点)更加方便。

        3.比较一下顺序表和链表的优缺点:

        顺序表    优点:支持随机读取,内存空间利用高  缺点:插入,删除时需要移动位置

        链表  相反

PS:还有一种叫仿真链表,属于顺序表,就是一个顺序表存对象,一个顺序表存每个对象下一个逻辑对象的索引。以此仿真链表形  式。不常用

你可能感兴趣的:(快速理解数据结构中链表)