叶节点与中间节点.h
来自「一个显示二叉树结构和相关算法的小程序,重在结构」· C头文件 代码 · 共 43 行
H
43 行
#ifndef LEAFNINTL_H
#define LEAFNINTL_H
class VarBinNode{
public:
virtual bool isLeaf()=0;
};
class LeafNode:public VarBinNode{
private:
int var;
public:
LeafNode(const int& val)
{var=val;}
bool isLeaf(){return true;}
int value(){return var;}
};
class IntlNode:public VarBinNode{
private:
VarBinNode* left;
VarBinNode* right;
char opx;
public:
IntlNode(const char& op,VarBinNode* l,VarBinNode* r)
{ opx=op; left=l; right=r; }
bool isLeaf(){return false;}
VarBinNode* leftchild(){return left;}
VarBinNode* rightchild(){return right;}
char value(){return opx;}
};
void traverse(VarBinNode *subroot){
if(subroot==NULL)return;
if(subroot->isLeaf())
cout<<"Leaf: "<<((LeafNode*)subroot)->value()<<endl;
else{
cout<<"Internal: "<<((IntlNode*)subroot)->value()<<endl;
traverse(((IntlNode*)subroot)->leftchild());
traverse(((IntlNode*)subroot)->rightchild());
}
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?