从对方答复 2016-07-08 06:04 采纳率: 0%
浏览 1126

数据结构二叉树层次遍历问题

写了一个二叉树层次遍历但是输出的时候总是程序有问题,我用#作为空指针,
例如当我输入ABC##DE#G##F###,一直循环输出B,而不是ABCDEGF

 typedef struct BiTree
{
     char data;
     struct BiTree *lchild;
     struct BiTree *rchild;
}BiTree;

void visit(BiTree *T)
{
    if((T->data)!='#')
        cout<<T->data<<" ";
}

int CreatTree(BiTree *&T)
{
    char data;
    cin>>data;
    if(data=='#')
        T=NULL;
    else
    {
        T=new BiTree;
        T->data=data;
        CreatTree(T->lchild);
        CreatTree(T->rchild);
    }
    return 0;
}
void level(BiTree *p)
{
    int front,rear;
    BiTree *que[maxsize];
    front=rear=0;
    BiTree *q;
    if(p!=NULL)
    {
        rear=(rear+1)%maxsize;
        que[rear]=p;
        while(front!=rear)
        {
            front=(front+1)%maxsize;
            q=que[front];
            visit(q);
            if(p->lchild!=NULL)
            {
                rear=(rear+1)%maxsize;
                que[rear]=p->lchild;
            }
            if(p->rchild!=NULL)
            {
                rear=(rear+1)%maxsize;
                que[rear]=p->rchild;
            }
        }
    }
}
  • 写回答

3条回答 默认 最新

  • Robot-S 2016-07-08 06:12
    关注

    #include
    #include

    #define MAX_SIZE 100

    typedef char ElemType;
    typedef struct BiTree
    {
    ElemType elem;
    BiTree* LChild;
    BiTree* RChild;
    }BirTree,*PBiTree;

    typedef struct Queue
    {
    i......
    答案就在这里:【数据结构】二叉树的层次遍历
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建