#include <stdio.h>
#include <stdbool.h>
#define MAXSize 100
typedef int ElemType;
//描述顺序存储结构
typedef struct{
ElemType data[MAXSize];
int length;
}SqList;
//初始化
void Initlist(SqList &L){
L.length=0;
}
bool ListEmpty(SqList L) {
return L.length == 0;
}
//插入操作
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1||L.length == MAXSize)
return false;
for(int j=L.length;j>=i;j--){
L.data[j]=L.data[j-1];}
L.data[i-1]=e;
L.length++;
return true;
}
//删除操作
bool ListDelete(SqList &L,int i,ElemType &e) {
if(i<1||i>L.length);
return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return true;
}
//按值查找
bool LocateElem(SqList L,ElemType e){
int i;
for(i=0;i<L.length;i++){
if(L.data[i]==e)
return i+1;
}
return 0;
}
//主函数
int main(){
SqList myList;
ElemType e;
bool result;
void Initlist(SqList &myList);
printf("初始化列表\n",myList);
result = ListEmpty(myList);
printf("列表是否为空: %s\n", result ? "是" : "否");
// 插入元素
for (int i = 1; i <= 5; i++) {
result = ListInsert(SqList &myList, i, i * 10);
printf("在位置 %d 插入元素 %d,结果: %s\n", i, i * 10, result ? "成功" : "失败");
}
// 查找元素位置
int pos = LocateElem(SqList myList, 20);
printf("元素 20 的位置是:%d\n", pos);
// 删除第3个元素
result = ListDelete(SqList &myList, 3, &e);
if (result) {
printf("删除第3个元素,删除的元素是:%d\n", e);
} else {
printf("删除第3个元素失败。\n");
}
return 0;
}
|