首页 > 代码库 > 线性表的应用
线性表的应用
#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;}
线性表的应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。