以下线性表代码有插入、删除、定位查找功能,可以直接复制运行
#include"stdio.h"
#define max 10
typedef struct{
int data1[max];
int n;
}list;
//删除
void del(list *l,int i)
{
int j;
if(l->n<=0)
return;
if(i<=0||i>l->n)
return;
for(j=i;j<=l->n;j++)
{
l->data1[j]=l->data1[j+1];
}
l->n--;
}
//插入
int insert(list *l,int i,int dat)
{
int j;
if(l->n>=max)
{
printf("full!");
return 0;
}
if(l->n<0||l->n>max)
{
printf("error!");
return -1;
}
for(j=l->n+1;j>i;j--)
{
l->data1[j]=l->data1[j-1];
}
l->data1[j]=dat;
l->n++;
return 1;
}
//定位查找
int locate(list *l,int x)
{
int i=1;
while(i<=l->n && l->data1[i]!=x)
{
i++;
}
if(i>l->n) return -1;
return i;
}
int main(void)
{
list l1;
int s,s1;
int i=0;
l1.data1[1]=5;
l1.n=1;
s=insert(&l1,2,6);
// del(&l1,2);
s1=locate(&l1,6);
for(i=1;i<=l1.n;i++)
{
printf("%d\n",l1.data1[i]);
}
printf("%d\n",s1);
return 0;
}