二叉树先序遍历时没有进入递归。
输入二叉树后,先序遍历没有进入递归。这是二叉树构建这一步就错了,还是我根节点建立的方式不对?
除了代码中初始化的方法和直接初始化成NULL还有别的初始化方法吗?求指明。
头文件:
#include<iostream>
using namespace std;
struct BiNode{
char data;
struct BiNode *lchild, *rchild;
};
template<class T>
class BiTree{
public:
BiTree(){ root = NULL;}
BiTree(BiNode *root);
void PreOrder(BiNode *root);// 前序遍历二叉树
private:
BiNode *root;
void Creat(BiNode *root);//有参构造函数调用
//void Release(BiNode<T> *root);//析构函数调用
};
template<class T> void BiTree<T>::PreOrder(BiNode *root){
if (root == NULL) return;
else{
cout << root->data;
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
template<class T> BiTree<T>::BiTree(BiNode *root){
Creat(root);
}
template<class T>void BiTree<T>::Creat(BiNode *root){
char ch;
cin >> ch;
if (ch == '#') root = NULL;
else{
root = new BiNode;
root->data = ch;
Creat(root->lchild);
Creat(root->rchild);
}
}
主函数
#include<iostream>
#include "BiTree.h"
using namespace std;
void main(){
BiNode *root;
root = new BiNode();
root->data = 'a';
BiTree<char> s(root);
cout << "请按照1先序遍历输入二叉树的数据:" << endl;
s.PreOrder(root);
//s.Creat();
system("pause");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
下个Visio画画流程图吧。