#include <stdio.h>
#define MAXSIZE 50
typedef char ElementType;
typedef struct LNode* List;
struct LNode {
ElementType Data[MAXSIZE];//定义数组
int Last;//定义线性表最后一个元素
};
struct LNode L;//下标为i的元素:L.Data[i]
List PtrL;//下标为i的元素:Ptrl->Data[i]
List MakeEmpty()//初始化
{
List PtrL;//定义线性表结构的指针
PtrL = (List)malloc(sizeof(struct LNode));//malloc函数申请结构
PtrL->Last = -1;//没有元素
return PtrL;//返回结构指针
}
int Find(ElementType X, List Ptrl)//查找
{
int i = 0;
while (i <= Ptrl->Last && PtrL->Data[i] != X)
i++;
if (i > PtrL->Last)
return -1;
else
return i;//返回存储位置
}
void Insert(ElementType X, int i, List PtrL)//在i位置插入
{
int j;
if(PtrL->Last == MAXSIZE - 1) { //表已满不能插入
printf("表满");
return;
}
if (i < 1 || i > PtrL->Last + 2) {
printf("位置不合法");
return;
}
for (j = PtrL->Last; j >= i - 1; j--)
PtrL->Data[j + 1] = PtrL->Data[j];//Data[i-1]~Data[n-1]依次后移
PtrL->Data[i - 1] = X;//插入X
PtrL->Last++;//Last指向最后元素
}
void Delete(int i, List PtrL)//删除第i个元素
{
int j;
if (i < 1 || i > PtrL->Last + 1) {
printf("第%d个元素不存在", i);
return;
}
for (j = i; j <= PtrL->Last; j++)
PtrL->Data[j - 1] = PtrL->Data[j];
PtrL->Last--;
return;
}
线性表的顺序存储
最新推荐文章于 2023-03-24 17:29:40 发布