#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
#define MaxSize 10
using namespace std;
//順序表的定義、插入、刪除、查詢
typedef struct {
int data[MaxSize];
int length;
} SqList;
void InitList(SqList &L) {
for (int i = 0; i < MaxSize; i++)
L.data[i] = 0; //將所有數據元素設置為默認初始值
L.length = 0; //初始值的長度為0
}
bool ListInsert(SqList &L, int i, int e) {
if (i < 1 || i > L.length + 1) {
return false; //判斷i的范圍是否有效
}
if (L.length > MaxSize) {
return false; //當前存儲空間已滿,不能插入
}
for (int j = L.length; j >= i; j--) //將第i個元素后移
L.data[j] = L.data[j - 1]; //
L.data[i - 1] = e; //將第i個元素放入e
L.length++; // length長度加1
return true;
}
int ListDelete(SqList &L, int i, int &e) {
if (i < 1 || i > L.length) return false;//判斷i的范圍是否有效
e = L.data[i - 1];
for (int j = i; j <= L.length; j++) {
L.data[j - 1] = L.data[j];
}
L.length--;
return true;
}
int LocateElen(SqList L,int e){
for(int i = 0;i < L.length;i++)
if(L.length = e)
return i+1;
return 0;
}
int main() {
SqList L; //聲明一個順序表
InitList(L); //初始化順序表
//順序表的插入
//....此處省略一些代碼,插入幾個元素
ListInsert(L, 1, 0);
ListInsert(L, 2, 1);
ListInsert(L, 3, 2);
ListInsert(L, 4, 3);
ListInsert(L, 5, 4);
//順序表的刪除
int e = 3,i = 4;
if (ListDelete(L, i, e)) {
printf("已刪除第%d個元素,元素為 %d\n",i, e);
} else
printf("位序不合理,現在表總長%d,刪除失敗\n",L.length);
//順序表的查找
LocateElen(L,3);
printf("查找的值為%d",e);
return 0;
}