《2022年数据结构C语言编程顺序表 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构C语言编程顺序表 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include #include #include /#include #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct L_List int *elem; int length; int listsize; List; void ListInit(List &L) L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int); if(! L.elem) exit(0); L.length = 0; L.listsize = LIST_INIT_SIZE; printf(
2、 创建了一个顺序表!n); void CreList(List &L) int n,i; printf( 请输入初始元素个数:n); scanf(%d,&n); for(i=0; i n; i+) scanf(%d,&L.elemi); L.length+=n; bool ListInsert(List &L, int p, int e) int *newbase , *pt , *qt; if(p L.length + 1) / p 为第几个元素 printf( 插入位置不合法,插入失败!); return false; if(L.length = L.listsize) newbase =
3、 (int *)realloc(L.elem , (L.listsize + LISTINCREMENT)*sizeof(int); if(! newbase) exit(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - L.elem = newbase; L.listsize += LISTINCREMENT; qt = &(L.elemp-1); for(pt = &(L.elemL.length - 1 ); pt
4、= qt; -pt) *(pt + 1) = *pt; *qt = e; +L.length; return true; bool ListDelete(List &L, int i) int *p , *q; if(i L.length) return false; p = & (L.elemi - 1); printf( 删除元素%d n, *p); q = L.elem + L.length - 1; for(+p; p = q; +p) *(p - 1) = *p; -L.length; return true; void ShowList(List &L) int i; for(i
5、= 0; i L.length; i+) printf(%d ,L.elemi); printf(n); int main() List L; int i,n,p,e; ListInit(L); CreList(L); printf( 请输入要插入元素个数:n); scanf(%d,&n); getchar(); while(n-) printf( 请输入要插入的位置和插入的数据(用空格分开 ):n); scanf(%d %d,&p,&e); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - getchar(); ListInsert(L,p,e); ShowList(L); printf( 请输入删除位置:n); scanf(%d,&p); ListDelete(L,p); ShowList(L); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -
限制150内