设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。
设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。
正确答案:void delete(LinkList &;L, int mink, int maxk) { p=L->next; //首元结点 while (p &;&; p->data<=mink) { pre=p; p=p->next; } //查找第一个值>mink的结点 if (p) {while (p &;&; p->datanext; // 查找第一个值 ≥maxk的结点 q=pre->next; pre->next=p; // 修改指针 while (q!=p) { s=q->next; delete q; q=s; } // 释放结点空间 }//if }