#include <iostream>
using namespace std;
// 有序二叉树(二叉搜索树)
class Tree {
public:
Tree (void) : m_root (NULL), m_size (0) {}
void insert (int data) {
//Node * a = new Node (data);
insert (new Node (data), m_root);
++m_size;
}
void travel (void) {
travel (m_root);
cout << endl;
}
private:
// 节点
class Node {
public:
Node (int data) : m_data (data),
m_left (NULL), m_right (NULL) {}
int m_data; // 数据
Node* m_left; // 左树
Node* m_right; // 右树
};
void insert (Node* node, Node*& tree) {
if (! tree){
tree = node;
}
else if (node) {
if (node->m_data < tree->m_data)
insert (node, tree->m_left);
else
insert (node, tree->m_right);
}
}
void travel (Node* tree) {
if (tree) {
travel (tree->m_left);
cout << tree->m_data << ' ';
travel (tree->m_right);
}
}
Node* m_root; // 树根
size_t m_size; // 大小
};
int main (void) {
Tree tree;
tree.insert (50);
tree.insert (60);
tree.insert (70);
tree.travel();
return 0;
}
为什么insert (Node* node, Node*& tree)这句去掉引用,数据就显示不出来了