线性结构(顺序存储和链式存储)和非线性结构的特点及区别

1. 线性结构

特点:除第一个元素只有一个“后继”和最后一个元素只有一个“前驱”,其它每个元素只有一个“前驱”元素和一个“后继”元素。

常见的线性结构有:  数组、链表、栈以及队列。注意:栈和队列本身不是一种数据结构,可通过数组或链表实现。

1.1 线性结构又分为顺序存储和链式存储

线性结构又分为顺序存储和链式存储,顺序存储:各个元素存储的地址空间连续,逻辑相邻的元素在物理内存中也相邻,如数组;

链式存储:各个元素存储在任意的地址空间,逻辑相邻的元素在物理内存中没有联系,如链表。

1.2 顺序存储和链式存储的区别

1.2.1 顺序存储

优点:① 因为各个元素是连续储存,而且当元素类型一致时占用空间大小一致,所以可以直接通过首元素地址计算

               某个元素的内存地址,从而访问特定元素效率很高

          ② 对于有序数组,还可以通过二分查找提高元素查找的速度

缺点:① 由于顺序存储的特点,所以在删除或插入元素后需要移动其它元素使得整体的存储空间依然是连续的,

               所以删除、插入元素效率低,如下图

           ② 由于元素存储空间连续,所以当有大数据时,较难分配一块连续的大内存空间

1.2.2 链式存储

优点:① 由于链式存储的特点,删除或插入节点很方便,不需要移动其它元素,改变元素“连接”关系即可

               所以删除、插入元素效率高,如下图

缺点:① 因为存储的任意性,只能通过前一个元素访问下一个元素,每一次访问元素都从头节点开始遍历,

               所以访问特定元素或查找元素效率低

2. 非线性结构

特点:每个元素可以和多个元素“连接”。

常见的非线性结构:二维数组、树和图。

猜你喜欢

转载自blog.csdn.net/yldmkx/article/details/109996386