顺序表
#include <iostream>
using namespace std;
//顺序表容量
const int MAX_SIZE = 100;
//结构体定义
struct SeqList {
int data[MAX_SIZE];
int length;
};
//初始化顺序表
void init(SeqList& L) {
L.length = 0;
}
//判断是否为空
bool isEmpty(SeqList L) {
return L.length == 0;
}
//判断是否已满
bool isFull(SeqList L) {
return L.length == MAX_SIZE;
}
//指定位置插入元素
void insert(SeqList& L, int pos, int value) {
if(pos < 1 || pos > L.length + 1) {
cout << "插入位置错误" << endl;
return;
}
if(isFull(L)) {
cout << "顺序表已满" << endl;
return;
}
for(int i = L.length; i >= pos; i--) {
L.data[i] = L.data[i - 1];
}
L.data[pos - 1] = value;
L.length++;
}
//删除指定位置元素
void remove(SeqList& L, int pos) {
if(pos < 1 || pos > L.length) {
cout << "删除位置错误" << endl;
return;
}
if(isEmpty(L)) {
cout << "顺序表为空" << endl;
return;
}
for(int i = pos - 1; i < L.length - 1; i++) {
L.data[i] = L.data[i + 1];
}
L.length--;
}
//遍历顺序表
void traverse(SeqList L) {
if(isEmpty(L)) {
cout << "顺序表为空" << endl;
return;
}
for(int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
评论区