| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2578 人关注过本帖
标题:[清理垃圾帖子]
只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:20 回复次数:35 
[清理垃圾帖子]
-----------

[ 本帖最后由 BlueGuy 于 2015-6-3 20:20 编辑 ]
搜索更多相关主题的帖子: 清理 
2011-10-20 09:30
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
收藏
得分:2 
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-10-20 10:51
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:2 
楼上犯错了?不解。

我们都在路上。。。。。
2011-10-20 11:43
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
收藏
得分:0 
画了个算法图出来,让封了!版主没学过程序?看不懂表示算法的图?
2011-10-20 11:49
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
不是吧?画图也有错?我倒。

我们都在路上。。。。。
2011-10-20 11:53
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
以下是引用cosam在2011-10-20 10:51:56的发言:
*** 该帖被屏蔽 ***


假设b为最大值,你是怎么知道a节点的呢??

我就是真命天子,顺我者生,逆我者死!
2011-10-20 13:54
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
我觉得怎么着也要O(N)的效率吧。
2011-10-20 14:01
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
三个指针,一个遍历,一个记录当前最大值得地址,一个记录最大值的前一个地址。

最后删除最大值指针
2011-10-20 14:02
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
以下是引用Devil_W在2011-10-20 14:02:29的发言:

三个指针,一个遍历,一个记录当前最大值得地址,一个记录最大值的前一个地址。
最后删除最大值指针


三个指针是不好做的, 我用了四个指针,一个用于跟随遍历的那个指针...
这么个简单的问题却定义了四个指针

ListNode findMaxPrevNode(List list)
{
    ListNode p, q, prev, max;

    prev = q = list->head;

    for (max = p = list->head->next; p; p = p->next)
    {
        if (p->item > max->item)
        {
            prev = q;
            max = p;
        }

        q = p;
    }

    return prev;
}

[ 本帖最后由 BlueGuy 于 2011-10-20 14:50 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-10-20 14:49
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
void DeleteMaxNode(List list)
{
    ListNode p, max;
    p = list->head;
    max = p;
    while(p->next != NULL)
    {
        if(p->next->item > max->next->item) max = p;
        p = p->next;
    }
    p = max->next; //将被删除的结点,按需要自己处理
    max->next = max->next->next;
}

重剑无锋,大巧不工
2011-10-20 15:04
快速回复:[清理垃圾帖子]
数据加载中...
 
   



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

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