线性表:零个或多个元素的有限序列。
线性表顺序存储的缺点:在删除和添加元素时会移动大量元素,效率低下。
#include<stdio.h>
#include<assert.h>
#define SIZE 10
typedef struct Sqlist
{
int elem[SIZE];
int usedsize;
}Sqlist,*PSqlist; //SqList定义类型变量,使用*PSqList定义指针变量
//初始化
void InitSqlist(PSqlist Psq)
{
assert(Psq != NULL);
Psq->usedsize = 0;
}
bool isFull(PSqlist Psq)
{
return Psq->usedsize == SIZE;
}
bool Insert(PSqlist Psq,int pos ,int val)//在 pos 位置插入 val 值
{
assert(Psq != NULL);
if(pos < 0 || pos > Psq->usedsize || isFull(Psq))
{
return false;
}
//挪数据
for(int i = Psq->usedsize-1;i >= pos;i--)
{
Psq->elem[i+1] = Psq->elem[i];
}
Psq->elem[pos] = val;
Psq->usedsize++;
return true;
}
bool isEmpty(PSqlist Psq)
{
return Psq->usedsize == 0;
}
int Search(PSqlist Psq,int pos,int key)//从pos位置开始查找 key 值==>第一次出现==》返回下标 -1
{