//算法功能:建立顺序表
//算法思路:先判断拟建立的顺序表的长度n是否大于顺序表初始化时
//的存储容量LIST_INIT_SIZE,如果n > LIST_INIT_SIZE,
//则按照n重新分配顺序表大小,反之则依次将数据元素存储到顺序表中。
#include <stdio.h>
#include <stdlib.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
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));
L.listsize = len;
}
printf("请输入顺序表元素: \n");
for(int i = 0; i < len; i++)
scanf("%d", &L.elem[i]);
L.length = len;
printf("建立的顺序表为:\n");
for(int i = 0; i < len; i++)
printf("%d ", L.elem[i]);
printf("\n顺序表一共 %d 个元素。\n",L.length);
}
int main()
{
SqList L;
int Sqlen;
if(!InitList_Sq(L))
{
printf("初始化顺序表失败!\n");
exit(ERROR);
}
printf("输入顺序表个数:\n");
scanf("%d", &Sqlen);
CreateList(L, Sqlen);
return 0;
}
//算法思路:先判断拟建立的顺序表的长度n是否大于顺序表初始化时
//的存储容量LIST_INIT_SIZE,如果n > LIST_INIT_SIZE,
//则按照n重新分配顺序表大小,反之则依次将数据元素存储到顺序表中。
#include <stdio.h>
#include <stdlib.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
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));
L.listsize = len;
}
printf("请输入顺序表元素: \n");
for(int i = 0; i < len; i++)
scanf("%d", &L.elem[i]);
L.length = len;
printf("建立的顺序表为:\n");
for(int i = 0; i < len; i++)
printf("%d ", L.elem[i]);
printf("\n顺序表一共 %d 个元素。\n",L.length);
}
int main()
{
SqList L;
int Sqlen;
if(!InitList_Sq(L))
{
printf("初始化顺序表失败!\n");
exit(ERROR);
}
printf("输入顺序表个数:\n");
scanf("%d", &Sqlen);
CreateList(L, Sqlen);
return 0;
}