| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:二叉树的层次遍历有点问题
只看楼主 加入收藏
modify
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2010-11-24
收藏
 问题点数:0 回复次数:2 
二叉树的层次遍历有点问题
#include<iostream>
#include<stdio.h>
#define OK 1
#define ERROR -1
#define OVERFLOW -2
typedef char Type;
using namespace std;
typedef struct node
{
    Type data;
    struct node *lchild,*rchild;
}node,*tree;
typedef struct QNode
{
    char data;
    struct QNode *next;
}*link;
typedef struct
{
    link front;
    link rear;
}linkqueue;
void initqueue(linkqueue&q)
{
  q.front =q.rear = new QNode();
  if(!q.front)    exit(OVERFLOW);
  q.front->next = NULL;
}
int EnQueue (linkqueue&q,char e)
{
  QNode *p = new QNode();
  if(!p)    exit(OVERFLOW);
  p->data = e;   
  p->next = NULL;
  q.rear->next = p;
  q.rear = p;
  return OK;
}
int DeQueue (linkqueue&q)
{
  if(q.front ==q.rear)
  {
      cout<<"已为空,不可再删除"<<endl;
      return ERROR;
  }
  link p =q.front->next;
  q.front->next = p->next;
  if(q.rear == p)   
  q.rear =q.front;
  delete p;
  return OK;
}
int EmptyQueue(linkqueue&q)
{
 if(q.rear==q.front) return 1;
 else return 0;
}
tree creattree(tree&t)
{
    char ch;
    ch=getchar();
    if(ch=='#')     
        t=NULL;
    else
    {
        t=new node();
        t->lchild=t->rchild=NULL;
        if(!t)exit (OVERFLOW);
        t->data=ch;
        creattree(t->lchild);
        creattree(t->rchild);//实现递归
    }
    return t;
}
int TravelTree(tree r)//层次遍历
{
 linkqueue q;
 initqueue(q);
 tree p,p1,p2;
 p=r;
 if(!p)
 {   
    cout<<"二叉树为空";
    return ERROR;
 }
 EnQueue(q,p->data);
 while(!EmptyQueue(q))
 {
    cout<<q->front->data;
    p1=p->lchild;
    p2=p->rchild;
    if(p1) EnQueue(q,p1->data);
    if(p2) EnQueue(q,p2->data);
    DeQueue(q);
 }
 return OK;
 }
搜索更多相关主题的帖子: 二叉树 遍历 
2010-11-25 15:14
modify
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2010-11-24
收藏
得分:0 
已经解决
2010-11-26 10:09
modify
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2010-11-24
收藏
得分:0 
已经解决
2010-11-26 10:09
快速回复:二叉树的层次遍历有点问题
数据加载中...
 
   



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

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