| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:用队列层次遍历二叉树中的问题
只看楼主 加入收藏
翔云
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-6-11
结帖率:0
收藏
已结贴  问题点数:5 回复次数:3 
用队列层次遍历二叉树中的问题
void EnQueue(Linkqueue*Q,Bitree*sh)                //插入元素sh为新队尾元素
{
    QNode *p;
    p=(QNode*)malloc(sizeof(QNode));
    if(!p) exit(OVERFLOW);
    p->data=sh;
    p->next=NULL;
    Q->rear->next=p;
    Q->rear=p;
}
Bitree*DeQueue(Linkqueue*Q)                        //删除队头元素,用sh返回其值
{
    Bitree*sh;
    QNode *p;
    if(Q->front==Q->rear)
        exit(OVERFLOW);
    p=Q->front->next;
    sh=p->data;
    Q->front->next=p->next;
    if(sh->lchild)
        EnQueue(&Q,sh->lchild);   <- 这句语句编译时系统提示错误
    return sh;
}
error C2664: 'EnQueue' : cannot convert parameter 1 from 'Linkqueue ** ' to 'Linkqueue *'
为什么呢,要怎么改?
搜索更多相关主题的帖子: 二叉树 
2011-06-11 20:48
weiqiang
Rank: 2
等 级:论坛游民
帖 子:48
专家分:52
注 册:2010-10-18
收藏
得分:3 
我刚学数据结构,不太懂哦共同学习
2011-06-11 22:02
灿烂烟火
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:12
专家分:36
注 册:2011-5-10
收藏
得分:3 
错误在于指针引用错误。应将函数EnQueue的首部改为void EnQueue(Linkqueue *&Q,Bitree *sh),调用部分EnQueue(&Q,sh->lchild);改为EnQueue(Q,sh->lchild);建议多看一下教材或多查一些资料,加深对引用的理解。
2011-06-13 21:51
博士无双
Rank: 2
等 级:论坛游民
帖 子:32
专家分:65
注 册:2011-7-5
收藏
得分:0 
EnQueue(&Q,sh->lchild);   <- 这句语句编译时系统提示错误
EnQueue(Q,sh->lchild);
2011-09-08 10:48
快速回复:用队列层次遍历二叉树中的问题
数据加载中...
 
   



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

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