节点类定义.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 + -
显示快捷键?