删除单链表中所有大于最小值小于最大值的元素
问题描述:
设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有大于最小值小于最大值的元素(若存在)。
问题解答:
因为链表是无序的,所以只能逐个结点进行检查,执行删除。
本题代码如下:
设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有大于最小值小于最大值的元素(若存在)。
问题解答:
因为链表是无序的,所以只能逐个结点进行检查,执行删除。
本题代码如下:
void RangeDelete(LinkList &L, int min,int max){ LNode *pr = L, *p=L->link; //p 是检测指针,pr 是其前驱 while(p!=NULL) if (p->data>min&&p->data<max) { //寻找到被删结点,删除 pr->link=p->link; free(p); p=pr->link; }else{ //否则继续寻找被删结点 pr=p; p=p->link; } }