二叉树建立
结束二叉树输入:如何结束创建二叉树的输入那;把二叉树补全前序(输入):AB##C##中序:#B#A#C#后序:##B##CA输出结果如下:代码如下#include<iostream>using namespace std;//定义节点typedef struct node{struct node *left;struct node *...
·
结束二叉树输入:如何结束创建二叉树的输入那;把二叉树补全
前序(输入):AB##C##
中序:#B#A#C#
后序:##B##CA
输出结果如下:
代码如下
#include<iostream>
using namespace std;
//定义节点
typedef struct node
{
struct node *left;
struct node *right;
char data;
}BiTreeNode, *BiTree;
//按照前序顺序建立二叉树
void createBiTree(BiTree &T)
{//输入需要将二叉树补成满二叉树 ABD##E##CH### 或者 AB##C##
char c;
cin >> c;
if ('#' == c) //当遇到#时,令树的根节点为NULL,从而结束该分支的递归
T = NULL;
else
{
T = new BiTreeNode;
T->data = c;
createBiTree(T->left);
createBiTree(T->right);
}
}
//前序遍历输出
void preTraverse(BiTree T)
{
if (T)
{
cout << T->data << " ";
preTraverse(T->left);
preTraverse(T->right);
}
}
//中序遍历输出
void midTraverse(BiTree T)
{
if (T)
{
midTraverse(T->left);
cout << T->data << " ";
midTraverse(T->right);
}
}
//后续遍历输出
void postTraverse(BiTree T)
{
if (T)
{
postTraverse(T->left);
postTraverse(T->right);
cout << T->data << " ";
}
}
int main()
{
BiTree T; //声明一个指向二叉树根节点的指针
createBiTree(T);
cout << "二叉树创建完成!" << endl;
cout << "前序遍历:" << endl;
preTraverse(T);
cout << endl;
cout << "中序遍历:" << endl;
midTraverse(T);
cout << endl;
cout << "后序遍历:" << endl;
postTraverse(T);
return 0;
}
点击阅读全文
更多推荐
活动日历
查看更多
直播时间 2025-02-26 16:00:00


直播时间 2025-01-08 16:30:00


直播时间 2024-12-11 16:30:00


直播时间 2024-11-27 16:30:00


直播时间 2024-11-21 16:30:00


所有评论(0)