| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4104 人关注过本帖
标题:判断单链表是否对称的问题
只看楼主 加入收藏
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
收藏
得分:0 
我知道楼上的意思,q是节点的指针域。
2013-09-21 22:06
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 31楼 xiedj
你知道什么呀?你说说你的q=NULL是干吗呢?

总有那身价贱的人给作业贴回复完整的代码
2013-09-21 22:12
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
收藏
得分:0 
经过    while(p!=NULL)//q指向最后一个节点(也就是倒数第二个节点的指针域),p为最后一个节点的指针域
        {
            q=p;
            p=p->pnext;
        }
操作之后,q其实就是倒数第二个节点的指针域(根据结构体定义的节点,一个节点包含有数据域和指针域),它指向最后一个节点。
2013-09-21 22:16
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
好吧,你要学学语文,答非所问

总有那身价贱的人给作业贴回复完整的代码
2013-09-21 22:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你從書上抄一段話出來,確實跟書上是完全一樣的,然後把抄在紙上的話改了,就說連書上的話也改了,是這樣麽?你不改書上的,去改复制品,有用嗎?牛皮燈籠,點到這份上都不明白?

授人以渔,不授人以鱼。
2013-09-21 22:20
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
收藏
得分:0 
有一个地方没理解过来,就是即使q被赋值为某个节点的指针域了,下面再对q进行处理时q只指向下一个节点,并不等价于某个节点的指针域!这才是问题所在,所以我的free()和q=NULL都是有问题的。也就是说要引用某个节点的指针域必须借助另一个指针。程序修改后可以正确运行,总算是把这个困扰我很久的问题解决了。
int symmetry(PNODE phead,int n)//判断单链表是否对称的函数
{
    PNODE p,q=NULL;
    int flag=1,i,j;
    p=phead;//p指向头节点
    for(i=0;i<n/2;i++)
    {
        while(p->pnext!=NULL)//q指向倒数第二个节点(也就是倒数第二个节点的指针域(×))
        {
            q=p;
            p=p->pnext;
        }   
        for(p=phead->pnext,j=0;j<i;j++)//p从第一个节点开始往中间靠(每循环一次就指向下一个节点)
        {
            p=p->pnext;
        }
        if((p->data)!=(q->pnext->data))//判断首尾开始往中间靠的过程是否有节点数据域不同,若有则终止循环,返回flag=0
        {
            flag=0;break;
        }
        free(q->pnext);//释放最后一个节点
        q->pnext=NULL;//倒数第二个节点置空
    }
    return flag;//返回flag的值
}
2013-10-05 10:02
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
收藏
得分:0 
q->pnext;//倒数第二个节点指针域置空,下一次循环时就变为最后一个节点了
2013-10-05 10:03
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
不错,再从一楼重新看一遍帖子,回顾一下这一路来你的思考,基本上对于链表就没有问题了

[ 本帖最后由 embed_xuel 于 2013-10-5 11:49 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2013-10-05 11:47
快速回复:判断单链表是否对称的问题
数据加载中...
 
   



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

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