《数据结构中的线性表的c语言表示和插入删除查找操作程序》由会员分享,可在线阅读,更多相关《数据结构中的线性表的c语言表示和插入删除查找操作程序(3页珍藏版)》请在金锄头文库上搜索。
1、#include #include #define MaxSize 100typedef struct int dataMaxSize;int length; SqList;void InitList(SqList *L) / 传入的参数用指针L-length = 0;return;int GetLength(SqList L) return L.length;int GetElem(SqList L, int i, int *e) if (i L.length) /*无效的 i 值*/return 0;else *e = L.datai - 1; /改变指针的值前面用*return 1;in
2、t Locate(SqList L, int x) /*按值查找*/int i = 0;while (L.datai != x) /*查找值为 x 的第 1 个结点*/i+;if (i L.length)return (0); /*未找到*/elsereturn (i+1);int InsElem(SqList *L, int x, int i) int j;if (i L-length +1) /*无效的参数 i*/return 0;for (j = L-length; j = i; j-) /*将位置为 i 的结点及之后的结点后移*/L-dataj = L-dataj - 1;L-data
3、i - 1 = x; /*在位置 i 处放入 x*/L-length+; /*线性表长度增 1*/ return 1;int DelElem(SqList *L, int i) int j;if (i L-length) /删除时,i 大于线性表的长度return 0;for (j = i; j length; j+)L-dataj - 1 = L-dataj;L-length-;return 1;void DispList(SqList L) int i;for (i = 1; i = L.length; i+)printf(%c, L.datai - 1);printf(n);int ma
4、in() int i;int e;SqList L;InitList(&L); / 参数是指针时,实参应为地址int chr;memset(&L,0,sizeof(L);while (chr = getchar()!= n)InsElem(&L, chr, L.length+1); /连续插入元素printf(线性表:);DispList(L);printf(长度:%dn, GetLength(L);i = 3;GetElem(L, i, &e);printf(第%d 个元素:%cn, i, e);e = a;printf(元素%c 是第%d 个元素n, e, Locate(L, e);i = 4;printf(删除第%d 个元素n, i);DelElem(&L, i);printf(线性表:);DispList(L); return 0;