awanganddong
2021-03-18 17:17:39 +08:00
```
#include <stdio.h>
#include <stdlib.h>
#define LIST_TNIT_SIZE 100
typedef int ElemType;
typedef enum Status
{
success,fail,fatal,range_error
} Status;
typedef struct Sqlist
{
ElemType *elem;
int length;
int listsize;
} Sqlist,*ListPtr;//重命名并且定义一个结构体指针
Status List_Init(ListPtr L)
{
Status status = fatal;
L->elem = (ElemType *)malloc(LIST_TNIT_SIZE*sizeof(ElemType));
if(L->elem!=NULL)
{
L->length=0;
L->listsize=LIST_TNIT_SIZE;
status = success;
}
return status;
}
//------------------插入函数-----------------
void List_Input(ListPtr L)
{
int n;
printf("请输入数据元素的个数(1 - 5):");
while(1)
{
scanf("%d",&n);
if(n>LIST_TNIT_SIZE||n<=0)
printf("数据出错,请重新输入:\n");
else
break;
}
for(int i=0; i<n; i++)
{
printf("请输入第%d 个数据元素:",i+1);
scanf("%d",L->elem+i);
L->length++;
}
}
//-------------------输出-----------------
void print(ListPtr L)
{
printf("顺序表中的元素为:");
for(int i=0; i<L->length; i++)
{
printf("%d ",*(L->elem+i));
}
printf("\n");
}
//--------------------插入------------------
void List_Insert(ListPtr L)
{
int pos,data;
printf("请输入插入元素的位置:");
scanf("%d",&pos);
printf("请输入插入元素的数值:");
scanf("%d",&data);
if(pos>=L->length)
{
*(L->elem+pos-1)=data;
L->length+=pos;
}
else
{
for(int i=L->length; i>=pos; i--)
{
*(L->elem+i)=*(L->elem+i-1);
}
L->length++;
*(L->elem+pos-1)=data;
}
}
//---------------------主函数---------------
int main()
{
ListPtr L;
Status status = fail;
L = (ListPtr)malloc(sizeof(Sqlist));
List_Init(L);
List_Input(L);
print(L);
List_Insert(L);
print(L);
//printf("%d",L->listsize);
return 0;
}
```
整体代码是这个样子,但是我追 ListPtr L 没找到它的定义