标题:怎样用栈实现二叉树的中序遍历
只看楼主
张残卷
Rank: 1
来 自:安徽安庆
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-17
结帖率:0
已结贴  问题点数:20 回复次数:2 
怎样用栈实现二叉树的中序遍历

#include<iostream>
using namespace std;
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define OVERFLOW -1
typedef char TElemType ;
typedef char SElemType ;
typedef struct BiTNode{
    TElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct {
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;
void InitStack(SqStack &S){
    char *base;
    S.base=new SElemType[MAXSIZE];
    if(!base)
    exit(OVERFLOW);
    S.top=S.base;
    S.stacksize=MAXSIZE;
}
void Push(SqStack &S,SElemType e){
 if(S.top-S.base==S.stacksize)
 cout<<"栈满!\n";
 *S.top++=e;
}
void Pop(SqStack &S,SElemType &e){
   
    if(S.top==S.base)
    cout<<"栈空!\n";
    e=*--S.top;
}

void CreatBiTree(BiTree &T)
{
    char ch;
    cin>>ch;
    if(ch=='#')
    T=NULL;
    else{
        T=new BiTNode;
        T->data=ch;
        CreatBiTree(T->lchild);
        CreatBiTree(T->rchild);
    }
}
void InOrderTraverse(BiTree T)
{
    SqStack S;
    BiTree p;
    InitStack(S);
    p=T;
    BiTNode *q=new BiTNode;
    while(p!=NULL){
        if(p)
        {Push(S,p);
        p=p->lchild;}
    else
        {Pop(S,q);
        cout<<q->data;
        p=q->rchild;}
    }
}

void main()
{
    BiTree T;
    cout<<"建立二叉树:\n";
    CreatBiTree(T);
      cout<<"二叉树为:\n";
    InOrderTraverse(T);
   
}
搜索更多相关主题的帖子: namespace void include 二叉树 
2013-05-17 22:33
张残卷
Rank: 1
来 自:安徽安庆
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-17
得分:0 
我在运行时它提醒struct BiTNode *不能转换为cahr,但我在实验室上机时老师的程序是这样的,不知道究竟怎样修改,希望高手能点播哈我这个新手,谢谢啦
2013-05-17 22:37
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:20 
你这是类型转换错误,改下类型就可以了

Maybe
2013-05-19 20:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407372-1-1.html




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

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