数据结构-顺序表
作者:
cosini
,
2023-07-18 20:26:20
,
所有人可见
,
阅读 124
顺序表
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define Max 30
typedef int DataType;
typedef struct
{
DataType* data;
int n;
}SeqList;
void InitList(SeqList &L)
{
L.data = (DataType *)malloc(Max*sizeof(SeqList));
if(L.data==NULL)
{
printf("动态分配内存失败!\n");
exit(0);
}
L.n=0;
}
void Clear(SeqList &L)
{
L.n=0;
}
int Length(SeqList &L)
{
return L.n;
}
int Search(SeqList &L,DataType &x)
{
for(int i=0;i<L.n;i++)
{
if(L.data[i]==x) return i;
}
return -1;
}
bool Insert(SeqList &L,int i,DataType &x)
{
if(L.n==Max)
{
printf("顺序表空间不足!\n");
return false;
}
if(i<0||i>L.n)
{
printf("插入位置错误!\n");
return false;
}
for(int j=L.n;j>i;j--) L.data[j]=L.data[j-1];
L.data[i]=x;
L.n=L.n+1
return true;
}
bool Delete(SeqList &L,DataType &x)
{
if(L.n==0)
{
printf("顺序表没有任何数据!\n");
return false;
}
int position=-1;
for(int i=0;i<L.n;i++)
{
if(L.data[i]==x) position=i;
break;
}
if(position==-1)
{
printf("删除数据不存在!\n");
return false;
}
for(int i=position;i<L.n-1;i++)
{
L.data[i]=L.data[i+1];
}
L.n=L.n-1;
return true;
}
int main()
{
return 0;
}