#include <stdio.h>
#include <stdlib.h>
#define maxsize 1024
typedef int datatype;
typedef struct {
datatype data[maxsize];
int last;
} sequenlist;
sequenlist *InitList();
int Length(sequenlist *);
int Insert(sequenlist *, datatype, int);
void PrintList(sequenlist *);
int main() {
sequenlist *L;
int i = 0;
datatype x;
L = InitList();
printf("输入若干个整型数据,建立顺序表(输入-1结束):");
scanf("%d", &x);
while (x != -1) {
i++;
if (!Insert(L, x, i))
exit(0);
scanf("%d", &x);
}
PrintList(L);
return 0;
}
sequenlist *InitList() {
sequenlist *L = (sequenlist *)malloc(sizeof(sequenlist));
L->last = 0;
return L;
}
int Length(sequenlist *L) {
printf("表长度为%d.\n", L->last);
return L->last;
}
int Insert(sequenlist *L, datatype x, int i) {
int k;
if (L->last >= maxsize - 1) {
printf("表已满.\n");
return 0;
}
if (i < 1 || i > L->last + 1) {
printf("非法插入位置.\n");
return 0;
}
for (k = L->last; k >= i; k--) {
L->data[k + 1] = L->data[k];
}
L->data[i] = x;
L->last++;
return 1;
}
void PrintList(sequenlist *L) {
int i;
printf("顺序表为:\n");
for (i = 1; i <= L->last; i++)
printf("%5d", L->data[i]);
printf("\n");
}