#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE - 1
#define OVERFLOW - 2
#define MAXSIZE 100
#define SIZE 4
typedef int Status;
//定义一个顺序存储结构的数据类型
typedef struct {
int* elem;
int length;
}SqList;
Status InitList(SqList& L) {
L.elem = new int[MAXSIZE];
if (!L.elem) exit(OVERFLOW);
L.length = 0;
return OK;
}
int index = 1;
Status ListInsert(SqList& L,int i, int e) {
if ((i < 1) || i > L.length + 1) {
index = 0;
return ERROR; //"插入位置错误!";
}
if (L.length == MAXSIZE){
index = -1;
return ERROR; //"存储空间已满!"
}
for (int j = L.length - 1; j >= i - 1; j--) {
L.elem[j + 1] = L.elem[j]; //将第i个元素后面的元素依次向后移动一位
}
L.elem[i - 1] = e; //将新元素插入到第i个位置上面
L.length++;
return OK;
}
void ShowElem(SqList& L, int i, int e) {
ListInsert(L, i, e);
if(index == 0) cout << "插入位置错误!";
else if(index == -1) cout << "存储空间已满!";
else
for (int i = 0; i < L.length; i++) {
cout << L.elem[i] << " ";
}
}
void main() {
SqList L;
InitList(L);
cout << "请输入数组元素:";
for (int i = 0; i < SIZE; i++) {
cin >> L.elem[i];
L.length++;
}
cout << "L.length=" << L.length << endl;
int i, e;
cout << "请输入要插入的位置" << endl;
cin >> i;
cout << "请输入要插入的元素" << endl;
cin >> e;
cout << "打印新数组的元素:" << endl;
ShowElem(L, i, e);
}
顺序表的插入(自我练习)
最新推荐文章于 2023-03-14 20:41:28 发布