欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数剧结构--线性表-顺序表(02对顺序表的基本操作)

程序员文章站 2024-03-20 14:25:04
...

//插入

//顺序表的基本操作--插入
#define Maxsize 10;
typedef struct{
	int data[Maxsize];
	int length;
}sqlist;
bool InsertList(sqlist &L,int i,int e){
	//对插入位置进行判断
	if(i<1||i>L.length+1)
		return false;
	//看顺序表是否存满,存满就不能插入了
	if(L.length>=Maxsize)
		return false;
	for(int j=L.length;j>=i;j--)
		L.data[j]=L.data[j-1];
	L.data[i-1]=e;
	L.length++;
    return true;
}
int main(){
	sqlist L;
	InsertList(L,3,10);
	return 0;
}

//删除

//顺序表的基本操作--删除
#define MaxSize 10
typedef struct{
	int data[MaxSize];
	int length;
}sqlist;
void InitList(sqlist &L){
	for(int i=0;i<L.MaxSize;i++)
		data[i]=0;
	L.length=0;
}
bool DeleteList(sqlist &L,int i;int &e){
	//判断删除位置是否合法
	if(i<1||i>L.length)
		return false;
	e = data[i-1];
	for(int j=i;j<L.length;j++)
		data[j-1]=data[j];
	L.length--;
	return true;
}
int main(){
	sqlist L;
	InitList(L);
	int e = -1;
	if(DeleteList(L,3,e)){
		printf("删除的第三个元素值为%d\n",e);
	}
	else 
		printf("删除失败\n");
	return 0;
}

//按位查找

//顺序表的基本操作--按位查找
//基于静态分配
#define MaxSize 100
typedef struct {
	int data[MaxSize];
	int length;
}sqlist;
int GetElem(sqlist L,int i){
	return L.data[i-1];
}

//基于动态分配
#define InitSize 10
typedef struct{
	int *data;
	int MaxSize;
	int length;
}seqlist;
int GetElem(seqlist L,int i){
	return L.data[i-1];
}

//按值查找

//顺序表的基本操作--按值查找
//基于静态分配
#define MaxSize 100
typedef struct {
	int data[MaxSize];
	int length;
}sqlist;
int LocateElem(sqlist L,int e){
	for(int i=0;i<L.length;i++)
		if(data[i]==e)
			return i+1;
		return 0;
}
//基于动态分配
#define InitSize 10
typedef struct{
	int *data;
	int MaxSize;
	int length;
}seqlist;
int LocateElem(seqlist L,int e){
	for(int i=0;i<L.length;i++)
		if(data[i]==e)
			return i+1;
		return 0;
}
相关标签: 生活感想