节点类定义.h
来自「一个显示二叉树结构和相关算法的小程序,重在结构」· C头文件 代码 · 共 49 行
H
49 行
#ifndef NODEDEFINE_H
#define NODEDEFINE_H
enum Nodetype{leaf,internal};
class VarBinNode{
public:
Nodetype mytype;
union{
struct{
VarBinNode* left;
VarBinNode* right;
char opx;
}intl;
int var;
};
VarBinNode(const int& val)
{
mytype=leaf;
var=val;
}
VarBinNode(const char& op,VarBinNode* l,VarBinNode* r)
{
mytype=internal;
intl.opx=op;
intl.left=l;
intl.right=r;
}
bool isLeaf(){return mytype==leaf;}
VarBinNode* leftchild(){return intl.left;}
VarBinNode* rightchild(){return intl.right;}
};
void traverse(VarBinNode* subroot)
{
if(subroot==NULL)return;
if(subroot->isLeaf())cout<<"Leaf:"<<subroot->var<<'\n';
else{
cout<<"Internal:"<<subroot->intl.opx<<'\n';
traverse(subroot->leftchild());
traverse(subroot->rightchild());
}
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?