在顺序表中第五个位置插入一个元素9,实现顺序表插入的基本操作,输出顺序表中所有元素

题目

在顺序表中第五个位置插入一个元素9,实现顺序表插入的基本操作,输出顺序表中所有元素

#include<iostream>

using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。
typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型

#define MAXSIZE 100			//顺序表可能达到的最大长度

typedef struct {
	ElemType *elem; //存储空间的基地址
	int length; //当前长度
} SqList;

Status InitList(SqList &L) { //初始化创建顺序表	
	L.elem = new ElemType[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
	if (!L.elem)
		exit(OVERFLOW); //存储分配失败退出		
	cout<<"初始化表中元素个数:";
	int n;
	cin>>n;
	cout<<"creat SqList:";  //在初始化中创建表
	for(int i = 0; i < n; i++){
		cin>>L.elem[i];
	}
	L.length = n; //空表长度为0
	return OK;
}

void input(SqList L){//输出表 
	ElemType i = 0;
	while(L.length != i){
		cout<<L.elem[i]<<" ";
		i++;
	}
	cout<<endl;
}

Status ListInsert(SqList &L, int i, ElemType e) { //顺序表的插入
	//在顺序表L中第i个位置之前插入新的元素e
	//i值的合法范围是1<=i<=L.length+1
	if ((i < 1) || (i > L.length + 1))
		return ERROR; //i值不合法
	if (L.length == MAXSIZE)
		return ERROR; //当前存储空间已满
	for (int j = L.length - 1; j >= i - 1; j--)
		L.elem[j + 1] = L.elem[j]; //插入位置及之后的元素后移
	L.elem[i - 1] = e; //将新元素e放入第i个位置
	++L.length; //表长增1
	return OK;
}

int main()
{
	SqList a;	
	InitList(a);
	input(a);//输出顺序表 
	ListInsert(a,5,9); 
	input(a);//输出顺序表 
	return OK;
}

参考资料:
《数据结构 C语言版 第2版》严蔚敏 李冬梅 吴伟民

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页