线性表是基于数组操作的数据结构,相比于链表线性表的优势是随机访问,但是劣势也是非常的明显,在线性表中执行一次插入删除操作
是难以想象的麻烦,自己仅仅将线性表的创建贴出来.后面复习排序的时候会用到线性表的(插入排序)
#include <stdio.h>
#include <stdlib.h>
#define ListInitSize 100
#define OK 1
#define ERROR 0
typedef struct node
{
int *data;
int length;
int listsize;
}sqlist;
/**/
int InitList(sqlist *list)
{
(*list).data = (int*)malloc(sizeof(int)*ListInitSize);
if(!(*list).data)exit(1);
(*list).length = 0;
(*list).listsize = ListInitSize;
return OK;
}
/*创建线性表*/
int CreatList(sqlist *list)
{
int number;
int i=0;
printf("please input number.\n");
while(scanf("%d",&number) != EOF)
{
*((*list).data+i) = number;
(*list).length++;
i++;
}
return OK;
}
/*打印线性表*/
void PrintList(sqlist *list)
{
int i=0;
for(i=0;i<(*list).length;i++)
printf("%d ",*((*list).data+i));
printf("\n");
}
/**/
int main()
{
int sum,number,position;
sqlist list;
InitList(&list);
CreatList(&list);
PrintList(&list);
return 0;
}