老是找不到之前打的头文件,所以决定存起来以防找不到
#pragma once
#include <stdio.h>
typedef int DataType;
//typedef char DataType;
#define MaxSize 100
//定义结构体
typedef struct {
DataType list[MaxSize];
int size;
}SeqList;
//初始化
void ListInitiate(SeqList *L) {
L->size = 0;
}
//求当前元素个数
int ListLength(SeqList L) {
return L.size;
}
//插入元素
int ListInsert(SeqList *L,int i,DataType x) {
//在顺序表L的第i(0-size)个位置前插入x
//插入成功返回1,失败返回0
int j;
if (L->size >= MaxSize) {
printf("顺序表已满无法插入!\n");
return 0;
}
else if (i<0 || i>L->size) {
printf("参数i不合法\n");
return 0;
}
else
{
//从后往前依次后移数据,为插入做准备
for (j = L->size; j > i; j--)L->list[j] = L->list[j - 1];
L->list[i] = x;
L->size++;
return 1;
}
}
//删除元素
int ListDelete(SeqList* L, int i,DataType *x) {
//删除顺序表中第i(0-size-1)个位置处的元素并保存到x中
//删除成功返回1,失败返回0
int j;
if (L->size <= 0) {
printf("顺序表已经空五元素可删!\n");
return 0;
}
else if (i<0 || i>L->size) {
printf("参数i不合法!\n");
return 0;
}
else
{
*x = L->list[i]; //保存删除的元素到x中
//从前往后依次前移
for (j = i + 1; j <= L->size - 1; j++)L->list[j - 1] = L->list[j];
L->size--;
return 1;
}
}
//取元素
int ListGet(SeqList L, int i, DataType* x) {
//取顺序表L中第i个元素于x中,成功返回1,失败返回0
if (i<0||i>L.size-1)
{
printf("参数i不合法!\n");
return 0;
}
else
{
*x = L.list[i];
return 1;
}
}