关于二叉树中根和后根构造二叉树求大神帮忙看看有没有什么问题?

问题描述

关于二叉树中根和后根构造二叉树求大神帮忙看看有没有什么问题?

#include
using namespace std;

template
class BinaryNode
{
public:
T data;
BinaryNode *left, *right;
BinaryNode(T data, BinaryNode*left = NULL, BinaryNode*right = NULL)
{
this->data = data;
this->left = left;
this->right = right;
}
};

template
class BinaryTree
{
public:
BinaryNoderoot;
BinaryTree();
BinaryTree(T prelist[], int n);
BinaryTree(T inlist[], T postlist[], int n);
BinaryNode
create(T prelist[], int n, int &i);
~BinaryTree();
};
template
BinaryTree::BinaryTree()
{
this->root = NULL;
}

template
BinaryTree::BinaryTree(T prelist[], int n)
{
int i = 0;
this->root = this->create(T prelist[], int n, int &i);
}
template
BinaryNode* BianryTree::create(T prelist[], int n, int &i)
{
BinaryNode*p = NULL;
if (i < n)
{
T elem = prelist[i];
i++;
if (elem != NULL)
{
p = new BianryNode(elem);
p->left = create(prelist, n, i);
p->right = creat(prelist, n, i);
}
}
return p;
}
template
BinaryTree::BinaryTree(T inlist[], T postlist[], int n) //中根和后跟次序构造二叉树
{
BinaryNode*p = NULL;
if (n >0)
{
p = new BinaryNode(postlist[n-1]);
for (int i = 0; i < n;i++)
if (inlist[i] == postlist[n - 1])
break;
p - >left = new BinaryNode(T inlist[], T postlist[], i);
p -> right = new BinaryNode(T inlist[], T postlist[], n-1);
}
return p;
}

解决方案

http://bbs.csdn.net/topics/391853173

解决方案二:

不妨自己先单步看看和自己想的是否一样
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

时间: 2024-12-20 20:05:05

关于二叉树中根和后根构造二叉树求大神帮忙看看有没有什么问题?的相关文章

ios-在iOS中设置的Constraints没有用?求大神帮忙

问题描述 在iOS中设置的Constraints没有用?求大神帮忙 我预先设置了参数 确定后为: 但是插入的竖线并没有随view的变化而变化求解为什么 解决方案 你这个代码里面得添加相关内容的吧?还是直接界面上勾选就行了? 解决方案二: 你调整的是textFiled的大小,光标大小是与输入字体大小有关的 解决方案三: 你根本没选到竖线,你设的是textFeild,你要从outline那里选中你的线

gradle-向andriod studio中导入eclipse工程出错,求大神帮忙!!

问题描述 向andriod studio中导入eclipse工程出错,求大神帮忙!! Error:Could not find any version that matches com.android.tools.build:gradle:1.0.0.+. 第一次用andriod studio,不是很熟悉,按照网上的要求一步步操作,但是要出如上的错误,不知道怎么回事. 解决方案 问问3434嗡嗡嗡恶嗡嗡嗡 解决方案二: 问问3434嗡嗡嗡恶嗡嗡嗡 解决方案三: 问问3434嗡嗡嗡恶嗡嗡嗡 解决方

两张表中添加一天一条记录 求大神 帮忙看下 sql 语句该如何去写

问题描述 求大神帮忙解决一个问题比如说有三张表A,B,C三张表,我想将A中的某条数据点击添加按钮的时候同时加到B和C两张表,如何添加?A和B是一对多关系B和C是一对多关系sql语句该如何去写 解决方案 解决方案二:分开逻辑写呗.解决方案三:用触发器可以吗解决方案四:触发器没经常用,的忘记中写了解决方案五:还有其他办法吗

struct-自己编的c语言建立二叉树的代码,运行时出错了,自己找不到错误,求大神帮忙,指点,急.

问题描述 自己编的c语言建立二叉树的代码,运行时出错了,自己找不到错误,求大神帮忙,指点,急. 自己编的c语言建立二叉树的代码,运行时出错了,自己找不到错误,求大神帮忙,指点,急. #include #include typedef struct tnode Tnode; struct tnode { Tnode *left; Tnode *right; int data; }; Tnode *new_tnode(int data) { Tnode *new = malloc(sizeof(Tn

jta-我不知道如何在netbean中给表赋值!!求大神

问题描述 我不知道如何在netbean中给表赋值!!求大神 public void QueryAll() { SAXReader reader=new SAXReader(); String classPath=ClassLoader.getSystemResource("").getPath(); System.out.println(classPath); filename=classPath+"students.xml"; File file=new File

matrix-C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽

问题描述 C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽 这是头文件 #include #ifndef MATRIX_H_ #define MATRIX_H_ class matrix { private: double a[20][20]; int m,n; public: matrix(); matrix(const matrix&a); ~matrix(); matrix operator=(const matrix&a); friend void

android java 回调-关于android中的回调机制 求大神帮忙看看代码

问题描述 关于android中的回调机制 求大神帮忙看看代码 boss 叫我写一个sdk 然后里面得实现回调 还给了我个demo 说回调机制和这个demo 一样 大概就是从A客户端发出一个数据 然后我这边接受 接受和执行一个事件 然后再回调给C public class DemoActivity extends Activity { private InputInterceptor input; @Override protected void onCreate(Bundle savedInst

t 遍历文件夹 ile nfo-急求使用Qt遍历打开文件夹,并把所有子文件的路径显示在ListWidget中,求大神帮忙!

问题描述 急求使用Qt遍历打开文件夹,并把所有子文件的路径显示在ListWidget中,求大神帮忙! bool StyleBatch::findFilePath(QString path){ QDir dir(path);if (!dir.exists()) return 0;dir.setFilter(QDir::Dirs|QDir::Files);dir.setSorting(QDir::DirsFirst);QFileInfoList list = dir.entryInfoList();

struts2.0-struts2中配置文件这样写看不懂啊 大神帮忙解答

问题描述 struts2中配置文件这样写看不懂啊 大神帮忙解答 [1].top 解决方案 [1]表示一个参数,具体怎么定义的要看你的程序了. 解决方案二: [1].top能不能具体点 解决方案三: 还有result param name=root 这里root指什么? 解决方案四: [1].top能不能具体点 解决方案五: [1]表示一个参数,具体怎么定义的要看你的程序了. 解决方案六: 具体把代码贴出来看看.