线性表是基于数组操作的数据结构,相比于链表线性表的优势是随机访问,但是劣势也是非常的明显,在线性表中执行一次插入删除操作
是难以想象的麻烦,自己仅仅将线性表的创建贴出来.后面复习排序的时候会用到线性表的(插入排序)
#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; }