初识线性表之------------静态顺序表

       静态顺序表是借助数组实现的,但与数组不同的是,在顺序表中数据是连续存储的,这是顺序表与数组的区别。
       下面是关于静态顺序表的实现:

       首先,先定义顺序表的结构体:
       

顺序表的定义

//因为是借助数组实现的,因此,需要定义数组的大小,在这里用MAX 表示数组大小。
//因为还需要多用一个变量来表示顺序表中的元素个数,因此,将两个变量封装成一个结构体,方便传参和存储数据。
typedef int DataType;
#define MAX 100
typedef struct SeqList 
{ 
	DataType data[MAX];            //顺序表
	int sz;                        //顺序表中的元素个数
}SeqList, *pSeqList; 

       对于一个顺序表来说,需要实现的功能基本包括:顺序表的初始化、销毁、插入数据、删除数据、查找数据等,下面一一进行实现。

顺序表的初始化:

//对于顺序表来说,数组的大小是确定的
//因此在初始化阶段只需要将表示元素个数的 sz 成员的值修改为 0 即可
void InitSeqList(pSeqList ps)							//初始化
{
	assert(ps != NULL);       //因为下面要对 ps 解引用,因此先检测 ps 的有效性
	ps->sz = 0;
}

顺序表的销毁:

//原理与初始化相同,只需要通过修改表示数据个数的 sz 的值即可
void DestroySeqList(pSeqList ps)
{
	assert(ps != NULL);
	ps->sz = 0;
}

顺序表的插入:

       顺序表的插入分为三种,即:头插、尾插和指定位置插入,而指定位置插入又分为给出值查找位置插入和给定下标插入。

  • 头插: 将新的元素放在顺序表的首元素的位置。当插入数据时,首先判断顺序表的使用情况,如果顺序表的元素个数已经达到了数组的大小,那么就表示顺序表已满,不能执行插入。如果未满,就可以执行插入操作。当插入时,如果顺序表不为空,那么,首元素的位置就已经有其他元素了,所以我们需要先将顺序表的所有元素从后到前依次后挪一个位置。留出一个可以插入数据的位置。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值