#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 1000
typedef struct LNode *List;
typedef struct {
int a[19];
int b[20];
}ElementType;
struct LNode{
ElementType Data[MAXSIZE];
int last;
};
struct LNode L;
List Ptrl;
List MakeEmpty()
{
List Ptrl;
Ptrl = (List)malloc(sizeof(struct LNode));
Ptrl->last = -1;
return Ptrl;
}
int Find(ElementType X,List Ptrl)
{
int i=0;
while(i<=Ptrl->last && Ptrl->Data[i].a!=X.a && Ptrl->Data[i].b!=X.b)
i++;
if (i>Ptrl->last)
return -1; //如果没找到,返回-1
else return i; //找到后返回的是存储位置
}
void Insert(ElementType X,int i,List Ptrl)
{
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--) //将ai~an倒序向后移动
Ptrl->Data[j+1]=Ptrl->Data[j];
Ptrl->Data[i-1]=X; //插入新元素
Ptrl->last++; //last仍指向最后元素
return;
}
void Delete(int i,List Ptrl)
{
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--; //更新last位置仍指向最后
return;
}
int main()
{
}
线性表顺序存储结构代码
最新推荐文章于 2024-03-24 22:46:10 发布