| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:我自己没法了 只求有能力 可以发善心的棒棒我吧
只看楼主 加入收藏
chenyan3
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-3-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
我自己没法了 只求有能力 可以发善心的棒棒我吧
  话说很简单的链表在我这个菜鸟看来真是深奥啊。明天早上就要交了,希望今晚有人能帮我.
  题如下:
      设在一个带表头结点的单链表中所有元素结点的数据值按递增顺序排列,试写一个函数,删除表中所有大于MIN,小于MAN的元素。
另外还给了个:“void rangdelete(ListNode*L,ElemType min,ElemTypemax)”不之怎么用。

可能大家看来不是很难,但还是希望有人能帮助我
搜索更多相关主题的帖子: 善心 能力 
2010-03-25 21:48
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
比较一下,然后删除不符合条件链表


胖胖的我~
2010-03-25 21:55
chenyan3
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-3-14
收藏
得分:0 
回复 2楼 CodeWays
是这个题的思路吗?但比较是用循环实现吗?
2010-03-25 22:00
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:10 
typedef int ElemType;
typedef struct _ListNode{
    ElemType val;
    struct _ListNode *next;
}*ListNode;
void rangdelete(ListNode*head,ElemType min,ElemType max)//head为二级指针,传值的时候传head的地址
{
    ListNode Cur = *head, tmp;
    if (min > max) return;
    while (Cur)
    {
        if (Cur->val < min)
        {
            tmp = Cur->next;
            if (Cur == *head)
            {
                *head = tmp;
            }
            free(Cur);
            Cur = tmp;
        }else if (Cur->val > max)
        {
            while (Cur)
            {
                tmp = Cur->next;
                if (Cur == *head)
                {
                    *head = tmp;
                }
                free(Cur);
                Cur = tmp;
            }
        }else
        {
            Cur = Cur->next;
        }
    }
}
2010-03-25 22:28
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:0 
楼上的果然是猛人,给楼主一些注释吧。

坚持做对的事情,而不是容易的事情。
2010-03-25 22:31
chenyan3
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-3-14
收藏
得分:0 
回复 4楼 ldg628
还没认真看完程序就一阵脸红,一是感慨您的C语言功底,二是觉得自己真是才疏学浅。
我会认真学习C语言,从菜鸟开始越变。。。
再次谢谢您的编程,不管成功与否我都大恩不言谢啦!
2010-03-25 22:41
liyang04300
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2010-3-17
收藏
得分:0 
说实在的,看不懂,还是学的太少了!
2010-03-25 23:02
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
收藏
得分:0 
程序代码:
/*不知是否和题意...急着睡觉,还没测试...*/

void rangdelete(ListNode *L, ElemType min, ElemType max)
{
    ListNode *tmp = L;
   
    while (tmp -> next != NULL) {
        if ((tmp -> c) > min && (tmp -> c) < max)
            tmp -> next = tmp -> next -> next;
        tmp = tmp -> next;
    }
}

胖胖的我~
2010-03-25 23:23
赤那
Rank: 3Rank: 3
来 自:广东
等 级:论坛游侠
威 望:1
帖 子:127
专家分:178
注 册:2010-3-1
收藏
得分:10 
typedef int ElemType;
typedef struct _ListNode{
    ElemType val; //相当于int val;
    struct _ListNode *next;
}*ListNode;
void rangdelete(ListNode*head,ElemType min,ElemType max)//head为二级指针,传值的时候传head的地址
{
    ListNode Cur = *head, tmp;  //定义ListNode类型的两个指针Cur和tmp;Cur从表头开始找
    if (min > max) return;     //如果表头结点的单链表中的元素结点的数据不按顺序排列,则退出函数
    while (Cur)
    {
        if (Cur->val < min)    //找出小于min的结点   
        {
            tmp = Cur->next;   //tmp指向Cur所指向结点的下一个结点
            if (Cur == *head)  //如果Cur所指向的结点是小于min的结点且是表头结点,则head指向tmp所指的结点(因为Cur所指向的结点符合条件,将其删除)
            {
                *head = tmp;
            }
            free(Cur);
            Cur = tmp;    //使Cur、tmp指向同一结点
        }
        else if (Cur->val > max)  //找出大于max的结点
        {
            while (Cur)
            {
                tmp = Cur->next; //tmp指向Cur所指向结点的下一个结点
                if (Cur == *head) //如果Cur所指向的结点是大于max的结点且是表头结点,则head指向tmp所指的结点(因为Cur所指向的结点符合条件,将其删除)
                {
                    *head = tmp;
                }
                free(Cur);
                Cur = tmp;  //使Cur、tmp指向同一结点
            }
        }else
        {
            Cur = Cur->next;  //如果Cur所指向结点即不是小于min也不是大于max(Cur所指向的结点不符合条件),则查找Cur所指向结点的下一个结点
        }
    }
}
}

4楼,以后写了程序要尽量结多点注释!!
2010-03-26 00:11
快速回复:我自己没法了 只求有能力 可以发善心的棒棒我吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030498 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved