#include
using namespace std;
class binary_tree_node
{
public:
binary_tree_node(const int& init_data = int(),binary_tree_node*init_left=NULL,binary_tree_node* init_right=NULL)
{
data_field = init_data;
left_field = init_left;
right_field = init_right;
}
int& data(){return data_field;}
binary_tree_node* left(){return left_field;}
binary_tree_node* right(){return right_field;}
void set_data(const int& new_data){data_field=new_data;}
void set_left(binary_tree_node* new_left){left_field=new_left;}
void set_right(binary_tree_node* new_right){right_field=new_right;}
const int& data() const {return data_field;}
const binary_tree_node* left() const{return left_field;}
const binary_tree_node* right() const{return right_field;}
bool is_leaf()const{return (left_field==NULL)&&(right_field==NULL);}
bool is_left()const{return (left_field==NULL);}
bool is_right()const{return (right_field==NULL);}
private:
int data_field;
binary_tree_node* left_field;
binary_tree_node* right_field;
};
void main()
{
binary_tree_node* p;
cout<is_leaf()<<endl;
}
p数据初始化正确吗。指针有效?你出错的地方有非法指针
使用就错了,is_leaf()是p的成员函数,怎么可以直接用,应该改成这样就可以运行
你main函数中怎么写的?指针有给它分配空间吗?指针有效吗?
你在主函数中只声明了一个指针,系统不会分配内内存的,直接输出叶子节点要出错的。
main写错了,没有申请内存空间