📄 叶节点与中间节点.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -