#include<stdio.h> #include using namespace std; #define MAXSIZE 100 typedef char TElemType; // 将数据类型改为char typedef TElemType SqBiTree[MAXSIZE]; SqBiTree bt; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; void InOrderTraverse(BiTree T) { if(T) { InOrderTraverse(T->lchild); cout<data<<endl; // 输出字母 InOrderTraverse(T->rchild); } } void CreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=0; else { T=new BiTNode; T->data=ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } } int main() { BiTree T; CreateBiTree(T); InOrderTraverse(T); return 0; }

要输出字母,需要将数据类型改为char,然后修改相应的代码。

修改代码如下:

#include<stdio.h>
#include<iostream>
using namespace std;
#define MAXSIZE 100
typedef char TElemType; // 将数据类型改为char
typedef TElemType SqBiTree[MAXSIZE];
SqBiTree bt;
typedef struct BiTNode
{
    TElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void InOrderTraverse(BiTree T)
{
    if(T)
    {
        InOrderTraverse(T->lchild);
        cout<<T->data<<endl; // 输出字母
        InOrderTraverse(T->rchild);
    }
}
void CreateBiTree(BiTree &T)
{
    char ch;
    cin>>ch;
    if(ch=='#')
        T=0;
    else
    {
        T=new BiTNode;
        T->data=ch;
        CreateBiTree(T->lchild);
        CreateBiTree(T->rchild);
    }
}
int main()
{
    BiTree T;
    CreateBiTree(T);
    InOrderTraverse(T);
    return 0;
}

这样修改之后,输入的数据可以是字母,然后程序会按照中序遍历的顺序输出字母。

C++ 二叉树中序遍历输出字母

原文地址: https://www.cveoy.top/t/topic/pl2Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录