您当前的位置:首页 > 计算机 > 编程开发 > C语言

删除单链表中所有大于最小值小于最大值的元素

时间:01-03来源:作者:点击数:

问题描述:

设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有大于最小值小于最大值的元素(若存在)。

问题解答:

因为链表是无序的,所以只能逐个结点进行检查,执行删除。

本题代码如下:

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;
    }
}
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门