顺序表的定义、插入、删除、查找(完整代码)


#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;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM