首页 > 代码库 > 线性表的应用

线性表的应用

#include <stdio.h>#include <stdlib.h>#define LIST_INIT_SIZE  100#define LISTINCREMENT  10typedef struct{    int *elem;    int length;    int listsize;}SqList;void InitList_Sq(SqList &L){    L.elem = (int *)malloc(LIST_INIT_SIZE * sizeof(int));    //if(! L.elem)exit(OVERFLOW);    L.length = 0;    L.listsize = LISTINCREMENT;    printf("初始化成功\n");}//InitList_Sqvoid ListInsert_Sq(SqList L,int i,int e){    if(L.length>=L.listsize){        int *newbase = (int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof        (int));        //if(!newbase)exit(OVERFLOW);        L.elem = newbase;        L.listsize += LISTINCREMENT;     }     int *q = &(L.elem[i-1]);    for(int *p = &(L.elem[L.length - 1]);p>=q;--p)*(p+1) = *p;    *q = e;    ++L.length;    printf("成功\n"); }//ListInsert_Sqvoid ListDelete_Sq(SqList L,int i,int e){       int *p = &(L.elem[i-1]);    e = *p;    int *q = L.elem + L.length - 1;    for(++p;p<=q;++p) *(p-1)=*p;    --L.length;    printf("你要删除的值:%d\n",e); }//ListDelete_Sqvoid main(){    int e=0;    SqList L;    int i=0;    int k;    printf("欢迎进入系统:\n");    int j=1;    //scanf("%d\n",&j);    InitList_Sq(L);    while(j==1){    printf("插入值选1,删除选2.\n");    printf("请选择你想要进行的操作: \n");    scanf("%d", &k);    if(k==1){    printf("请输入你想要插入的位置:");     scanf("%d", &i);    printf("请输入你想要输入的数据: ");     scanf("%d", &e);    ListInsert_Sq(L,i,e);    k=0;j=0;    printf("请选择是否继续,继续选择1,退出选择2:\n");    scanf("%d", &j);    }    if(k==2){    printf("请输入你想要删除的数据的位置: ");    scanf("%d", &i);    ListDelete_Sq(L,i,e);    k=0;j=0;    printf("请选择是否继续,继续选择1,退出选择2:\n");    scanf("%d", &j);    }    }    return 0;}

 

线性表的应用