顺序表创建-C语言实现

#include <stdio.h>
#include <stdlib.h>

#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100

typedef int ElemType;
typedef int Status;

typedef struct
{
  ElemType *elem;
  int length;
  int listsize;
}SqList;

Status InitList_Sq(SqList *L)
{
  L->elem=(ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
  if(!L->elem)
    exit(ERROR);
  L->length=0;
  L->listsize=LIST_INIT_SIZE;
  return OK;
}


void CreateList(SqList * L,int len)
{
  if(len>LIST_INIT_SIZE)
  {
     L->elem=(ElemType *)realloc(L->elem,len * sizeof(ElemType));
  }

   printf("请输入顺序表元素:\n");
   int i = 0;
   for(i = 0;i<len;i++)
   {
     scanf("%d",L->elem+i);
   }
  L->length=len;
  printf("建立的顺序表为:\n");
  for(i=0;i<len;i++)
  {
    printf("%d ",L->elem[i]);
  }
  printf("\n顺序表达一共%d个元素.\n",L->length);
}

void main()
{
  SqList L;
  int Sqlen;
  if(!InitList_Sq(&L))
  {
    printf("初始化顺序表失败!\n");
    exit(ERROR);
  }
 printf("输入顺序表个数:");
 scanf("%d",&Sqlen);
 CreateList(&L,Sqlen);

}

 

作者: shinaimiao   发布时间: 2010-11-06