222顺序表基本运算的实现 建立顺序表 其方法是将给定的含有若干个元素的数组 Split的每个元 素依次放入到顺序表中,并将其长度赋给顺序表的 length字 段。对应的算法如下: public void Createlist( stringl split)/由 split中的元素建立顺序表 i int i; for (i=0; i<split Length; i++) data[i=split[; length=i
2.2.2 顺序表基本运算的实现 1.建立顺序表 其方法是将给定的含有若干个元素的数组split的每个元 素依次放入到顺序表中,并将其长度赋给顺序表的length字 段。对应的算法如下: public void CreateList(string[] split) //由split中的元素建立顺序表 { int i; for (i=0;i<split.Length;i++) data[i]=split[i]; length=i; }
2.顺序表基本运算算法 (1)输出线性表 Displist0 该运算是依次输出顺序表中各数组元素的值,这里是将顺 序表中的所有元素构成一个字符串返回。对应的算法如下: public string Displisto if (length>0) string mystr-data[ 0; for (i=l; i<length; i++) /扫描顺序表中各元素值 mystr+="+data j; return mystr; else return"空串";
2.顺序表基本运算算法 (1)输出线性表DispList() 该运算是依次输出顺序表中各数组元素的值,这里是将顺 序表中的所有元素构成一个字符串返回。对应的算法如下: public string DispList() { int i; if (length>0) { string mystr=data[0]; for (i=1;i<length;i++) //扫描顺序表中各元素值 mystr+=" "+data[i]; return mystr; } else return "空串"; }
(2)求线性表的长度 ListLengthe0 该运算返回顺序表的长度即其中的元素个数。实际上只需 返回 length字段的值即可。对应的算法如下 public int ListLengtho return length;
(2)求线性表的长度ListLength() 该运算返回顺序表的长度即其中的元素个数。实际上只需 返回length字段的值即可。对应的算法如下: public int ListLength() { return length; }
(3)求线性表中某个数据元素值 Getelen(e) 该运算用变量e表示线性表中逻辑序号为)元素,当逻辑 序号正确时取e= datai-1并返回true,否则返回fae对应的 算法如下: public bool GetElem(inti, ref string e) {if(i<I‖i> length) return false /参数错误时返回 false e=datai-1: /取元素值 return true; ∥1功找到元素时返回rue
(3)求线性表中某个数据元素值GetElem(i,e) 该运算用变量e表示线性表中逻辑序号为i的元素,当逻辑 序号i正确时取e=data[i-1]并返回true,否则返回false。对应的 算法如下: public bool GetElem(int i,ref string e) { if (i<1 || i>length) return false; //参数错误时返回false e=data[i-1]; //取元素值 return true; //成功找到元素时返回true }
(4)按元素值查找 LocateElem(e) 该运算顺序查找第一个值与e相等的元素的逻辑序号。若 顺序表中不存在这样的元素,则返回值为0。对应的算法如下 public int Locate Elem(string e) int i=0 while (iclength & string Compare(datail,e)=0) i++ /查找元素e if (i>=length /未找到时返回0 return 0 else eturn i+1 /找到后返回其逻辑序号
(4)按元素值查找LocateElem(e) 该运算顺序查找第一个值与e相等的元素的逻辑序号。若 顺序表中不存在这样的元素,则返回值为0。对应的算法如下: public int LocateElem(string e) { int i=0; while (i<length && string.Compare(data[i],e)!=0) i++; //查找元素e if (i>=length) //未找到时返回0 return 0; else return i+1; //找到后返回其逻辑序号 }