| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:两个链表进行比较,删除其中一个链表与另一个的相同节点时,要怎样写控制条 ...
只看楼主 加入收藏
鈴蘭
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:145
注 册:2013-4-1
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
两个链表进行比较,删除其中一个链表与另一个的相同节点时,要怎样写控制条件????
Student *complare(Student *a,Student *b)
{
    Student *p1,*p2,*q;
    p1=p2=a;q=b;
    while(p1==a)
    {
        for(int tq=t;t>=0&&tq>=0;t--)//t是每个链表输入的数据个数
            if(p1->num==q->num)
            {
                a=p1->next;
                p1=p2=a;
                q=b;
            }
            else if(t==0||tq==0)
                break;
            else
            {q=q->next;tq-=1;}
        p2->next=p1->next;
        p1=p2->next;
    }
    //p1和p2指向不同后的比较
    int min=t;//min是全局变量
    for(;t>=0;t-=1)
        for(int tq=m;min>=0&&tq>=0;)
        {
                if(p1->num==q->num)
                {
                    p2->next=p1->next;
                    p1=p2->next;
                    q=b;
                    tq=m;
                    min--;
                }
                else
                {q=q->next;tq--;}
                if(min==0&&p1->num==q->num)
                    p2->next=NULL;
        }
    return a;//删除a中的相同节点,并返回a
/*求大神看看我的控制条件有什么问题*/
}
搜索更多相关主题的帖子: next 
2013-04-17 17:50
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:14 
主要思路就是先比较两个链表的长度,以小的链表进行循环,然后比较数据是否相同,这样就可以了。
for(int tq=t;t>=0&&tq>=0;t--)//t是每个链表输入的数据个数,这个t只能代表一个链表的长度吧!你选择短的那个,算法就不需要运行那么多次,还有删除节点时的节点处理

Maybe
2013-04-17 20:49
快速回复:两个链表进行比较,删除其中一个链表与另一个的相同节点时,要怎样写控 ...
数据加载中...
 
   



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

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