2.2顺序表的插入删除

#include<stdio.h>
#define ElemType int
#define MaxSize 50

//首先定义一个顺序表
//顺序表:空间分配一定连续,逻辑结构与一维数组并不相同!!! 
typedef struct{
	ElemType data[MaxSize];
	int length;
}SqList;

//初始化顺序表 
void InitalSqList(SqList &L)
{
	L.length = 0;
	return ;
}

//插入第i个位置的元素
bool InsertSqList(SqList &L, ElemType e, int i)
{
	if(L.length >= MaxSize) return false;
	if(i < 1 || i > L.length + 1) return false;
	for(int k = L.length;k >= i;k--)
	{
		L.data[k] = L.data[k - 1];
	}
	L.data[i - 1] = e;
	L.length++;
	return true;
}

//删除第i个位置的元素
bool DeleteSqList(SqList &L, ElemType &e, int i)
{
	if(L.length == 0) return false;
	if(i < 1 || i > L.length) return false;	
	e = L.data[i - 1];
	for(int k = i;k < L.length;k++)
	{
		L.data[k - 1] = L.data[k];
	}
	L.length--;
	return true;
}

//输出整个顺序表
bool PrintSqList(SqList &L)
{
	for(int i = 1;i <= L.length;i++)
	{
		printf("%d ", L.data[i - 1]);
	}
	printf("\n");
	return true;
 } 

int main()
{
	SqList L;
	for(int i = 0;i < 20; i++)
	{
		L.data[i] = i + 1;
	}
	L.length = 20;
	
	PrintSqList(L);
	InsertSqList(L, 88, 19);
	PrintSqList(L);
	int e = 0;
	DeleteSqList(L, e, 19);
	PrintSqList(L);
	return 0;
}
posted @ 2026-06-25 17:46  AttaSayyid  阅读(6)  评论(0)    收藏  举报