美文网首页
顺序表的概念及定义

顺序表的概念及定义

作者: 无聊的CairBin | 来源:发表于2021-08-09 14:27 被阅读0次

顺序表

结点的概念

结点 :结点是内存中一片由用户分配的储存空间,只有一个地址来表示它的存在,没有显式名称。

在学习顺序表时,一般不会去特别强调结点的概念,此概念往往在链表学习中涉及,但并不代表结点与顺序表无关,所以我特意把结点的概念放在此处以加深对顺序表的理解。

顺序表的概念

定义:把逻辑上相邻的结点储存在物理位置上的相邻储存单元中,结点的逻辑关系由储存单元的邻接关系来体现

通俗来讲,顺序表就是把线性表中的所有元素按照其逻辑顺序,依次储存到从指定的储存位置开始的一块连续的储存空间中。

第一个元素的储存位置就是指定的储存位置,第 i+1 个元素的储存位置在第 i 个元素后面

顺序表的特性

  • 占用连续的储存空间:由定义可知顺序表的储存空间必然连续,并且存储分配只能预先进行,一旦分配完毕,在操作过程中始终不变。
  • 随机访问特性:因为储存空间是连续的,知道第一个元素的地址(即储存空间的首地址)可以轻松访问储存的所有数据。每一个结点对应一个序号,由该序号可以直接算出结点的储存地址。

顺序表三要素

  • 顺序表基地址
  • 顺序表长度
  • 顺序表总空间大小

顺序表结构体定义

typedef struct _Sqlist Sqlist;
struct _Sqlist {
  int *elems;         //顺序表基地址
  int length;         //顺序表长度
  int size;           //顺序表总空间大小
};

当然C语言提供了一种简单的写法(如下,以后以简单写法为例)。

typedef struct{
    int *elems;         //顺序表基地址
    int length;         //顺序表长度
    int size;           //顺序表总空间大小
    
}Sqlist;

在某些书籍上,有这样定义顺序表的

#define MAXSIZE 100
typedef struct {
  int data[MAXSIZE];        //存放顺序表元素的数组
  int length;               //存放顺序表的长度
}Sqlist;
  • 实际上这种定义已经为顺序表开辟了一部分内存空间,而前者需要使用函数来顺序表初始化。
  • 但实际上两种代码本质上是一样的,因为前者在顺序表的操作——初始化顺序表中的函数定义中,我们仍需要分配一片储存空间并且定义一个存放顺序表元素的数组;而后者相当于把这一步合并到了定义中。
  • 在学习过程而非实际开发中,我更倾向于前者,因为这更能反应顺序表的三要素,并且与链表代码书写风格相似,有利于感受线性表思想的共性。

结束

我们现在已经成功定义顺序表了,但更重要的是它的操作,所以下一篇文章就来写这部分内容。

相关文章

  • 顺序表的概念及定义

    顺序表 结点的概念 结点 :结点是内存中一片由用户分配的储存空间,只有一个地址来表示它的存在,没有显式名称。 在学...

  • 线性表

    线性表:定义: InitList_Sq现实: 顺序表的查找: 顺序表插入:

  • 顺序表的操作

    顺序表的操作 这里先定义个顺序表 顺序表初始化 定义bool类型函数 initList() ,初始化成功为true...

  • 线性表-顺序表与单链表

    顺序表 线性表的顺序存储,是逻辑相邻,物理存储地址也相邻。 结构定义 顺序表的初始化 顺序表的插入 顺序表的取值 ...

  • C++语言实现顺序表

    C++语言实现顺序表 顺序表的定义及其特点 顺序表的定义是:把线性表中的所有表项按照其逻辑顺序依次存储到从计算机存...

  • 顺序表的定义

    线性表是一种数据结构,它的逻辑结构如下图所示,连成一条线。其中物理结构包括顺序表和链表两种。 我们看看如何用代码来...

  • 《数据结构》第二章:线性表

    2.1线性表的定义与基本操作 2.2.1顺序表的定义 2.2.2.1 顺序表插入和删除 增加bool运算,提高代码...

  • 线性表总结

    线性表总结 顺序表和链表的定义 链表的结构解析 顺序表类型定义 例 单链表的存储结构定义 例 链表的结构解析 单链...

  • 数据结构与算法———顺序表

    By FastHorse March 5, 2017 顺序表定义 按顺序方式存储的线性表称为...

  • [数据结构]第二章线性表(2)——顺序表

    顺序表 顺序表的基本概念 顺序表的定义 顺序表的初始化 静态分配 具体实现: 问题反思 如果“数组”存满留怎么办?...

网友评论

      本文标题:顺序表的概念及定义

      本文链接:https://www.haomeiwen.com/subject/rsyzvltx.html