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

1. 线性结构

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

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

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

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

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

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

1.2.1 顺序存储

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

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

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

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

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

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

 

1.2.2 链式存储

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

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

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

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

 

2. 非线性结构

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

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

 

 

  • 26
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序存储方法是一种将数据元素按其逻辑顺序依次存放在一块连续的存储区域中的存储方式。顺序存储方法适用于线性结构的数据,如数组、队列和栈等。因为这些数据结构中的元素是按照一定的顺序排列的,可以通过数组中的下标或指针来访问。 对于非线性结构的数据,如二叉树、图等,顺序存储方法并不适合。因为这些数据结构中的元素之间是没有顺序关系的,无法按照顺序存储在一块连续的存储区域中。在这种情况下,应该使用链式存储结构来存储数据。 顺序存储方法的优点是存取速度快,可以随机存取元素,适合于需要频繁访问元素的场合。同时,由于元素存储在一块连续的存储区域中,可以更加有效地利用内存空间。 顺序存储方法的缺点是插入和删除操作比较麻烦,因为需要移动数组中的其他元素。在插入和删除元素时,需要进行大量的数据搬移,影响程序的执行效率。此外,由于数组在定义时需要确定大小,因此无法动态地调整数组的大小,当存储元素的数量超过数组大小时,需要重新申请更大的数组空间,导致内存浪费和程序执行效率降低。 综上所述,顺序存储方法仅适合存储线性结构的数据,对于非线性结构的数据应该使用链式存储结构。在使用顺序存储方法时,需要注意插入和删除操作的效率问题,并合理规划数组大小,避免内存浪费。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值