C++自定义树结构模板

借助vector定义了一个简单的树数据结构,由于后面没有用到,也没有进一步优化。如果不十分在意效率问题,勉强可以用。

///Tree.h 文件
#pragma once
#include <vector>
#include <string>
#include <algorithm>
using std::vector;
using std::string;
 
 
template<typename Type>
class CTree
{
public:
	Type node;
	Type father;
	vector< CTree > children;
 
	CTree(const Type & root)
	{
		this->node=root;
		this->father=NULL;
	}
 
	CTree()
	{
		this->father=NULL;
	}
 
	void AddChild(CTree child)
	{
		child.father=(this->node);
		children.push_back(child);
	}
 
	void AddChild(Type node)
	{
		CTree addTree=CTree(node);
		addTree.father=this->node;
		children.push_back(addTree);
	}
 
	~CTree()
	{
 
	}
 
	void PrintTree()
	{
		cout<<node<<endl;
 
		vector< CTree > eachNodeChildren = this->children;
		for ( auto it = eachNodeChildren.begin() ; it != eachNodeChildren.end() ; it++ )
		{
			it->PrintTree();
		}
	}
};

  

原文地址:https://www.cnblogs.com/originalcandy/p/13992357.html