数据结构与算法<6>——线性表的顺序存储结构(顺序表的具体操作)

一.顺序表的示意图

#define LIST INIT SIZE 100     //线性表存储空间的初始分配量;就是数组多大,这里定义了100
typedef struct{
    Elem Type elem[LIST INIT SIZE]; 
                        //用一维数组来装数据元素,这里是Elem类型,也可以是别的类型
    int length;        //当前长度
}SqList;

这个就相当于定义了一个顺序表 L,它是一个SqList型的变量,其中我们可以根据定义来画出其示意图:

注意:1.数组是从a0开始的,所以开辟100个空间,就要到a99,绿色部分是开辟的数组空间;蓝色的部分是开辟的存储长度变量的部分。       

2.对于普通变量来说其引用成员的写法如图,对于指针型来说应写成L->elem这样的

二.顺序表的基本函数状态代码

 就是当结果是true、ok时,电脑运行返回的是1;当结果是false、error时,返回的结果是0,infeasible时是-1;overflow是-2;



 三.顺序表中重要的操作

     1.先行标的初始化、摧毁、清空求长度、判断是否为空(基本操作)

             ❶ 线性表L的初始化

Status InitList_Sq(SqList&L){            //构造一个空的顺序表
    L.elem=new Elem Type[MAXSIZE];        //为顺序表分配空间
    if(!L.elem) exit(OVERFLOW);  
 
//如果不存在“线性表的成员”(存储空间分配失败),返回overflow,即-2
   
    L.length=0;                        //空表长度为0
    return OK;                        //

}

            ❷ 摧毁一个线性表(注意摧毁不会清空) ;清空线性表

//摧毁线性表
void DestroyList(SqList & L){
    if(L.elem) delete L.elem;  //如果是线性表单元就删除他,即释放空
  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值