顺序线性表的创建插入

/*
功能:顺序线性表的创建插入
作者:剑驰
时间:2009/10/20
*/

#include
#include

#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

typedef struct{
 int *elem;
 int length;
 int listsize;
}sqlist;

int InitList(sqlist *l)
{
 l->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
 if(!l->elem)
 {
  printf("分配失败!");
  exit(-1);
 }
 l->length=0;
 l->listsize=LIST_INIT_SIZE;
 return 0;
}
int CreateList(sqlist *l,int len)
{
 int i;
 int e;
 InitList(l);
 printf("输入顺序表元素:");
 for(i=0;i {
  scanf("%d",&e);
  l->elem[i]=e;
  l->length++;
 }
 return 0;
}
int ListInset(sqlist *l,int e,int count)
{
 int i;
 if(count>l->length|count<=0)
 {
  printf("该位置不能插入元素!/n");
  exit(-1);
 }
 for(i=l->length;i>=count;i--)
 {
  l->elem[i]=l->elem[i-1];
 }
 l->elem[count-1]=e;
 l->length++;
 return 0;
}
int PrintList(sqlist l)
{
 int i;
 for(i=0;i  printf("%-5d",l.elem[i]);
 return  0;
}

void main()
{
 int len;
 sqlist list;
 int i;
 int e;
 int count;
 printf("输入顺序表长度:");
 scanf("%d",&len);
 CreateList(&list,len);
 PrintList(list);
 printf("你需要插入元素");
 scanf("%d",&e);
 printf("插入元素位置:");
 scanf("%d",&count);
 ListInset(&list,e,count);
 PrintList(list);
}

你可能感兴趣的:(list,struct)