c语言创建一个顺序表并实现输入元素,插入元素
如有错误请指出,代码如下:
在这里插入代码片
#include "stdio.h"
#include "malloc.h"
#define max 10
typedef struct
{
int data[max];
int length;//仅仅代表线性表中有多少个元素,并不能存储元素的值
}ss;
void Init(ss *l)
{
l->length=0;
}
int Creat(ss *l,int a[],int n)
{
if(n>max)
{
printf("空间不够\n");
return 0;
}
int j;
for(j=0;j<n;j++)
{
l->data[j]=a[j];
}
l->length=n;
return 1;
}
int Insert(ss *l,int i,int x)//使用指针型
{
if(l->length>max)
{
printf("溢出\n");
return 0;
}
if(i<1||i>l->length)
{
printf("错误\n");
return 0;
}
int j;
for(j=l->length;j>i;j--)
{
l->data[j]=l->data[j-1];
}
l->data[i]=x;
l->length++;
return 0;
}
int main()
{
int a[5],i;
printf("输入线性表中的元素:\n");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
ss l;//定义一个顺序表
Init(&l);//取地址
Creat(&l,a,5);
printf("输出所有的元素:\n");
for(i=0;i<l.length;i++)
printf("%d\t",l.data[i]);
printf("插入一个元素:\n");
Insert(&l,2,10);
for(i=0;i<l.length;i++)
printf("%d\t",l.data[i]);
return 0;
}