赞
踩
/************************************************************* 顺序表的实现之查找功能 实现文件 更新于2020年4月13日 **************************************************************/ void SL_GetAt(SqList L, int i, ElemType &e) // 获取顺序表L的第i个元素赋给e,i的有效范围[1,L.length]。 { // 请在这里补充代码,完成本关任务-*/ /********** Begin **********/ e = L.elem[i-1]; /********** End **********/ } int SL_FindValue(SqList L, ElemType x) // 在顺序表L中查找第一个值为x的元素,找到则返回该元素在表中的位置,否则返回0。 { // 请在这里补充代码,完成本关任务 /********** Begin **********/ int i=0; for(i=0;i<L.length;i++){ if (L.elem[i]==x) return i+1; } return 0; /********** End **********/ }
/************************************************************* 顺序表的实现之增删功能 实现文件 更新于2020年4月13日 **************************************************************/ void SL_InsAt(SqList &L, int i, ElemType e) // 在顺序表的第i个位置插入新元素e, 即在元素L.elem[i-1]之前插入 // i的有效范围[1,L.length+1] { // 请在这里补充代码,完成本关任务 /********** Begin *********/ int j; for(j=L.length;j>i-2;--j) { L.elem[j+1] = L.elem[j]; } L.elem[j+1] = e; L.length++; /********** End **********/ } void SL_DelAt(SqList &L, int i) // 删除顺序表L的第i个元素 //i的有效范围[1,L.length] { // 请在这里补充代码,完成本关任务 /********** Begin *********/ int j; for (j=i-1;j<=L.length;++j) { L.elem[j] = L.elem[j+1]; } L.length--; /********** End **********/ } void SL_DelValue(SqList &L, ElemType x) // 删除第一个值为x的元素 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ //方法一:while查找待删值位置,进入for循环删除 int i=0; while(L.elem[i]!=x&&i<L.length) i++; if(L.elem[i]==x) { for (i;i<L.length;i++) L.elem[i] = L.elem[i+1]; L.length--; } /*方法二:查到位置,立刻删除 int i=0; for(i=0;i<L.length;i++) { if(L.elem[i]==x) { for(i;i<L.length;i++) L.elem[i] = L.elem[i+1]; L.length--; break; } } */ /********** End **********/ }
/************************************************************* 顺序表的合并 实现文件 更新于2020年4月13日 **************************************************************/ void MergeList_Sq(SqList LA,SqList LB,SqList &LC) //已知顺序表LA和LB的元素按值非递减排列 //归并LA和LB得到新的顺序表LC,LC的元素也按值非递减排列。 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ //1.定义 LC.length = LA.length + LB.length; int i=0 , j=0,t=0; //比较两个顺序表中的值,并将小的值放入LC中,当其中一个表比较完成后 while(i<LA.length&&j<LB.length) { if(LA.elem[i]<=LB.elem[j]) LC.elem[t++] = LA.elem[i++]; else LC.elem[t++] = LB.elem[j++]; } //2.直接将另一个未比较完成的表中的剩余值全部放到LC中 if(i==LA.length) { while(t<LC.length) LC.elem[t++] = LB.elem[j++]; } else { while(t<LC.length) LC.elem[t++] = LA.elem[i++]; } /********** End **********/ }
"答案仅供参考"
"直接抄袭毫无意义"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。