#include "stdio.h"
#define MaxSize 50
typedef int Elemtype;
typedef struct{//定义的结构体
Elemtype data[MaxSize];
int len;
}SqList;
bool ListInsert(SqList &L, int i, Elemtype elem){
if(i < 1 || i > L.len + 1)//如果插入的位置不在第一位或者大于最大的长度,则插入不成功
return false;
if(L.len >= MaxSize)//如果数组已经达到最大的容量则插入失败
return false;
for(int j = L.len; j >= i ; j--){
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = elem;
L.len += 1;
return true;
}
bool ListDelete(SqList &L,int i,Elemtype &e){
e = L.data[i - 1];
if(i < 1 || i >= L.len){
return false;//删除的位置不合法
}
for(int j = i - 1; j < L.len -1; j++){
L.data[j] = L.data[j + 1];
}
L.len--;
return true;
}
bool search(SqList L,Elemtype e){
for(int i = 0; i < L.len; i++){
if(e == L.data[i])
return true;
}
return false;
}
void traverse(SqList L){//遍历数组
for(int j = 0; j < L.len; j++){
printf("%4d",L.data[j]);
}
printf("\n");
}
int main(){
SqList L;
bool res;
Elemtype del;//需要删除的元素
del = 3;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.len = 3;
res = ListInsert(L,2,5);
if(res){
printf("插入成功");
traverse(L);
}
else
printf("插入失败");
res = ListDelete(L,1,del);
if(res){
printf("删除成功");
traverse(L);
}
else
printf("删除失败");
res = search(L,2);//查找数组中是否有2
if(res) {
printf("查找成功");
traverse(L);
}
else
printf("查找失败");
return 0;
}
顺序表实战
最新推荐文章于 2024-07-15 22:20:26 发布