数据结构与算法--顺序表的表示及基本操作

一、线性表的定义和特点

          1.线性表是具有相同特性的数据元素的一个有限序列

          2.线性表由n(n>=0)个数据元素(结点)a1,a2,...an组成的有限序列

           * 其中数据元素的个数n定义为表的长度

           * 当n=0时称为空表

           * 将非空的线性表(n>0)记作:(a1,a2,...an)

           * 这里的数据元素ai(1<=i<=n)只是一个抽象的符号,其具体含义在不同的情况下可以不同

        3.同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系

        4.线性表的逻辑特征: 

       * 在非空的线性表,有且仅有一个开始结点a1,它没有直接前驱,而仅有一个直接后继a2

       * 有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前驱an-1

       * 其余的内部结点ai(2<=i<=n-1)都有且仅有一个直接前驱ai-1和一个直接后继ai+1

        5.顺序存储结构存储空间分配不灵活、运算的空间复杂度高

        6.线性表中数据元素的类型可以为简单类型,也可以为复杂类型

        7.从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储结构和基本操作

        8.在计算机内,线性表有两种基本的存储结构:顺序存储结构链式存储结构

二、线性表的顺序存储表示(顺序表)

        1.线性表的顺序表示又称为顺序存储结构顺序映像

        2.顺序存储定义: 逻辑上相邻的数据元素储存在物理上相邻的存储单元中的存储结构

        3.线性表的第1个数据元素的存储位置,称作线性表的起始位置基地址

        4.线性表顺序存储结构占用一片连续的存储空间      

             // 知道某个元素的存储位置就可以计算其他元素的存储位置

        5.顺序表的特点:以物理位置相邻表示逻辑关系,任意元素均可随机存取

 例: 图书表的顺序存储结构类型定义

#define MAXSIZE 10000                //图书表可能达到的最大长度

typedef struct{                     //图书信息定义
    char id[20];                   //图
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值