#include<stdio.h>
#include<string.h>
#define Maxsize 100
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;
}
void PrintList(SqList L) {
for (int i = 0; i < L.length; i++)
{
printf("L.data[%d]:%d\n", i, L.data[i]);
}
}
void LengthList(SqList L) {
printf("L.length: %d\n", L.length);
}
bool EmptList(SqList L) {
if (L.length == 0)
{
return true;
}
else {
return false;
}
}
bool InsertList(SqList &L, int indx, int elm) {
if (indx < 1 || indx > L.length + 1)
{
printf("indx值错误\n");
return false;
}
if (indx > Maxsize)
{
printf("indx值错误\n");
return false;
}
// length = 5 indx = 3 elm = 2
for (int j = L.length; j > indx - 1; j--)
{
L.data[j] = L.data[j - 1];
}
L.data[indx - 1] = elm;
L.length++;
return true;
}
bool DeleteList(SqList& L, int indx) {
if (indx < 1 || indx > L.length)
{
return false;
}
if (indx > Maxsize)
{
return false;
}
//length = 5 indx = 1 1 2 3 4 5 .
for (int j = indx - 1; j < L.length; j++)
{
L.data[j] = L.data[j + 1];
}
L.length--;
return true;
}
bool ChangeList(SqList& L, int indx, int elm) {
if (indx < 1 || indx > L.length)
{
return false;
}
if (indx > Maxsize)
{
return false;
}
L.data[indx] = elm;
return true;
}
bool SearchList(SqList L, int elm) {
for (int i = 0; i < L.length; i++)
{
if (L.data[i] == elm) {
return true;
}
}
return false;
}
bool GetList(SqList L, int indx, int &elm) {
if (indx < 1 || indx > L.length)
{
return false;
}
if (indx > Maxsize)
{
return false;
}
elm = L.data[indx];
return true;
}
int main() {
SqList L;
InitList(L);
}
静态顺序线性表的创建及增删改查
于 2022-10-08 16:18:27 首次发布