//求线性表的长度 int GetLength(SqList L) { return L.length; //length里面记录了表中元素的个数 }
//求线性表中第i个元素 int GetElem(SqList L, int i, ElemType &e) { //注意进行数据i是否合法的判断 if (i < 1 || i > L.length) { return 0; } //返回对应的值 e = *(L.elem + i - 1); //注意线性表中第i个元素的下标为i-1,下标为i的元素的下标为i+1 return 1; }
//按值查找求下标 ElemType LocateElem(SqList L, ElemType e) { ElemType *p; int i = 1; p = L.elem; //循环遍历,比较查找 while (i < L.length && (*p++ != e)) { i++; } //判断返回值是否合理 if (i <= L.length) { return i; } else { return 0; } }
//插入数据 int ListInsert(SqList &L, ElemType e, int i) { /*插入算法: first,将新元素e插入到L中逻辑序号为i的位置,对应于L.elem[i-1] second,判断i的值是否合法(1<=i<=L.length+1) third,second满足时,将L.elem[i-1...length-1]都后移一个位置 然后在L.elem[i-1]处插入e,然后对表中相关参量进行修改。*/ //这里先使用一种特别笨的算法进行插入操作,后续进一步学习会介绍更加简洁的算法,但是每一种算法的实现都要掌握