永发信息网

用算法实现:顺序表删除。删除顺序表中值相同的多余结点

答案:2  悬赏:60  手机版
解决时间 2021-03-08 06:16
  • 提问者网友:饥饿走向夜
  • 2021-03-08 01:44
求:顺序表删除的算法。删除顺序表中值相同的多余结点,使得最后得到的链表中的所有结点的数据域值都不同。
谢谢大家了
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-03-08 02:09
//从线性表中删除表头、表尾或等于给定值的元素

bool deletelist(linearlist& l, elemtype& item, int mark)

{

if(listempty(l)) return false;

if(mark>0) {

item=l.list[0];

for(int i=1; i<l.size; i++)

l.list[i-1]=l.list[i];

}

else if(mark<0) item=l.list[l.size-1];

else { for(int i=0; i<l.size; i++)

if(l.list[i]==item) break;

if(i>=l.size)

return false;

else item=l.list[i];

for(int j=i+1; j<l.size; j++)

l.list[j-1]=l.list[j];

}

l.size--;

return true;

}
全部回答
  • 1楼网友:舍身薄凉客
  • 2021-03-08 02:58
//从线性表中删除表头、表尾或等于给定值的元素 bool DeleteList(LinearList& L, ElemType& item, int mark) { if(ListEmpty(L)) return false; if(mark>0) { item=L.list[0]; for(int i=1; i<L.size; i++) L.list[i-1]=L.list[i]; } else if(mark<0) item=L.list[L.size-1]; else { for(int i=0; i<L.size; i++) if(L.list[i]==item) break; if(i>=L.size) return false; else item=L.list[i]; for(int j=i+1; j<L.size; j++) L.list[j-1]=L.list[j]; } L.size--; return true; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯