亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tree.h

?? 講解了樹的粗略算法
?? H
字號:
#ifndef _T_TREE_H_INCLUDED
#define _T_TREE_H_INCLUDED

#pragma warning(disable:4786)
#include "vector"
using namespace std;
#include "datakeeper.h"


/* template <class Type> class NodeVector : private vector<Type> {
public:
	Type &operator[](int index) { return at(index);};
	const Type &operator[](int index) const { return at(index);};
	__declspec( property( get=get_Count) ) int Count;
	int get_Count() { return size();};
}; */
template <class Type,class DataType2=NodeData<Type> > class Tree;
template <class Type> class NodeData {
private:	
	typedef Ref<NodeData> NodeRef;
	NodeData(const Type &Data) : tData(Data){};
	NodeData(Type *pData) : tData(pData) {};
	NodeData() : Parent((NodeData*)NULL) {};
	virtual ~NodeData() {};
private:
	Ref<Type> tData;
	std::vector<NodeRef> vChilds;
	Ref<NodeData> Parent;
	friend class Tree<Type>;
	friend class Ref<NodeData>;
	friend _Datakeeper::Data<NodeData>;
};


/*
template <class T> class CScrollImpl;
template <class T, class TBase = CWindow, class TWinTraits = CContro1lWinTraits> class CScrollWindowImpl;
template <class T> class CMapScrollImpl;
template <class T, class TBase = CWindow, class TWinTraits = CControlWinTraits> class CMapScrollWindowImpl;

*/

template <class Type,class DataType2=NodeData<Type> > class Tree : private Ref<DataType2> {
	typedef Ref<DataType2> NodeBase;
public:
	typedef Tree<Type> Node;
//	Node node;
	// vector<Node> &Nodes() {	return vChilds;	};
	Node Parent() { if(!NodeBase::get_Data().IsNull()) return NodeBase::get_Data().Parent; return *this;};
	operator Type&() { return (NodeBase::get_Data().tData.get_Data()); };
	Type *operator->() {return &(NodeBase::get_Data().tData.get_Data());};
	__declspec( property( get=get_Data) ) Ref<Type> Data;
	Ref<Type> get_Data() { return NodeBase::get_Data().tData;};

	bool IsLeaf() { return NodeBase::get_Data().vChilds.size()==0;};
	bool IsNode() { return NodeBase::get_Data()vChilds.size()>0;};
	bool IsRoot() { return NodeBase::get_Data().Parent.IsNull();};
	bool operator ==(const Node &rhs) { return *(NodeBase*)this==(NodeBase &)rhs;};

	__declspec( property( get=get_Nodes) ) Node Nodes[];
	Node get_Nodes(int nIndex) { return (Node)NodeBase::get_Data().vChilds[nIndex]; };
	__declspec( property( get=get_Count) ) int Count;
	int get_Count() { return NodeBase::get_Data().vChilds.size();};
	__declspec( property( get=get_Key) ) unsigned long Key;
	unsigned long get_Key() { return NodeBase::Key();};

	Node AddNode(const Type &t) { Node n(t); ((NodeBase &)n).get_Data().Parent=(*this); NodeBase::get_Data().vChilds.push_back(n); return n;};
	void Delete() {
		if(!NodeBase::get_Data().Parent->IsNull()) NodeBase::get_Data().Parent->DeleteNode(*this);
		//Release();
	};
	void DeleteNode(int nIndex) {
		NodeBase::get_Data().vChilds.erase(NodeBase::get_Data().vChilds.begin()+nIndex);
	};
	void DeleteNode(Node &node) {
		vector<NodeBase>::iterator = find(NodeBase::get_Data().vChilds.begin(),NodeBase::get_Data().vChilds.end(),node);
		if(iterator!=NodeBase::get_Data().vChilds.end()) {
			NodeBase::get_Data().vChilds.erase(iterator);
		}
	};
	Tree(const Type &Data) : NodeBase(Data) {};
	Tree(Type *Data) : NodeBase(Data) {};
	Tree() {};
	Tree(const Tree<Type> &rhs) : NodeBase(rhs) {};
	Tree(const NodeBase &rhs) : NodeBase(rhs) {};
	Tree(KEY key) : NodeBase(key) {};
	virtual ~Tree() 
	{	// if RefCount==ChildsCount+1, now is the time for release this (i.e. remove all refs to parent from childs
		ReleaseNode();
	};

private:
	void ReleaseNode() {
		if(NodeBase::IsNull()) return;
		ULONG nRefs=NodeBase::GetRefCount();
		int nChilds=NodeBase::get_Data().vChilds.size();
		if(nRefs==nChilds+1) {
			std::vector<NodeBase> &vChilds=NodeBase::get_Data().vChilds;
			for(int n=0;n<vChilds.size();n++) {
				vChilds[n]->Parent.Release();
				((Node &)vChilds[n]).ReleaseNode();
			}
		}
		Release();
	}
};

// typedef Tree<t> Node<t>
//Tree::
// usage:
/*

*/
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品九色蝌蚪自拍| 国产成人在线观看| 欧美r级在线观看| 成人黄色777网| 中文字幕佐山爱一区二区免费| 欧美色综合天天久久综合精品| 蜜臂av日日欢夜夜爽一区| 久久嫩草精品久久久精品| 国产.精品.日韩.另类.中文.在线.播放 | 91精品国产入口| 国产精品一级片在线观看| 国产亚洲一区二区三区在线观看 | 日韩美女精品在线| 欧美系列一区二区| 国内精品第一页| 一卡二卡三卡日韩欧美| 久久久精品黄色| 欧美日韩精品一区二区天天拍小说| 国产一区久久久| 香蕉久久一区二区不卡无毒影院 | 最新中文字幕一区二区三区| 日韩一区二区三区高清免费看看| 成人爽a毛片一区二区免费| 图片区小说区区亚洲影院| 国产精品久久久久久久久免费樱桃| 欧美日韩精品免费观看视频| av在线这里只有精品| 精品一区二区国语对白| 日韩美女啊v在线免费观看| 久久综合一区二区| 欧美区一区二区三区| 91在线无精精品入口| 国产91精品在线观看| 亚洲综合一区在线| 国产精品嫩草影院com| 日韩精品在线看片z| 欧美午夜精品久久久久久孕妇| 国产成人精品综合在线观看| 国产一区免费电影| 国产精品一级二级三级| 91精品国产综合久久蜜臀| 欧美日韩综合在线免费观看| 欧美在线短视频| 欧美麻豆精品久久久久久| 欧美日本不卡视频| 日韩欧美国产综合一区 | 日日摸夜夜添夜夜添国产精品| 亚洲福利视频导航| 丝袜诱惑亚洲看片| 九九在线精品视频| 国产不卡在线一区| 成人av电影观看| 色综合色狠狠综合色| 色8久久精品久久久久久蜜| 欧美日韩一区二区三区在线 | 国产一区二区三区黄视频| 国产精品1区二区.| 91小视频免费看| 欧美天天综合网| 日韩一级欧美一级| 日韩视频国产视频| 国产目拍亚洲精品99久久精品| 亚洲同性gay激情无套| 亚洲第一二三四区| 国内精品伊人久久久久av影院| 粉嫩av一区二区三区在线播放| 99re8在线精品视频免费播放| 欧美自拍偷拍一区| 精品日韩在线观看| 国产精品久久久久久户外露出 | 亚洲靠逼com| 欧美a级理论片| 成人三级在线视频| 欧美视频日韩视频| 国产亚洲精品aa| 亚洲一区二区三区国产| 精品中文字幕一区二区| 成人免费视频视频在线观看免费| 91精彩视频在线| 26uuu欧美| 亚洲一区二区三区中文字幕| 久久激五月天综合精品| 99久久国产免费看| 欧美一级片免费看| 1024亚洲合集| 日韩影视精彩在线| 成人精品国产福利| 欧美精品在线一区二区三区| 国产日韩精品一区二区浪潮av| 亚洲精品网站在线观看| 精品亚洲aⅴ乱码一区二区三区| 99久久婷婷国产| 欧美高清你懂得| 国产情人综合久久777777| 五月综合激情婷婷六月色窝| 国产成人午夜99999| 制服丝袜av成人在线看| 国产精品久久一卡二卡| 久久精品999| 欧美日韩二区三区| 亚洲欧美日本在线| 国产酒店精品激情| 日韩欧美成人激情| 亚洲午夜电影在线| 91在线观看一区二区| 国产偷v国产偷v亚洲高清 | 91色综合久久久久婷婷| 久久综合九色综合97_久久久| 亚洲精品大片www| 风间由美一区二区三区在线观看 | 亚洲欧美在线高清| 经典三级一区二区| 91精品综合久久久久久| 亚洲欧美一区二区不卡| 成人性生交大片免费看中文网站| 欧美一级午夜免费电影| 亚洲成人你懂的| 色噜噜狠狠色综合欧洲selulu| 久久久久久久综合| 青青草精品视频| 8x8x8国产精品| 亚洲综合网站在线观看| 91网站视频在线观看| 国产精品天天看| 国产精华液一区二区三区| 69久久99精品久久久久婷婷| 亚洲自拍与偷拍| 色婷婷狠狠综合| 悠悠色在线精品| 色伊人久久综合中文字幕| 中文字幕日韩一区二区| 国产成都精品91一区二区三| 2020国产精品久久精品美国| 国内国产精品久久| 久久无码av三级| 精品一区二区免费在线观看| 日韩精品一区二区三区在线 | 国产精品一区二区免费不卡| 久久久亚洲午夜电影| 国产麻豆欧美日韩一区| 欧美成人午夜电影| 国产一区二区三区香蕉| 精品少妇一区二区三区在线播放 | 99国产精品国产精品久久| 亚洲欧美另类图片小说| 91高清视频免费看| 婷婷国产在线综合| 91精品国产综合久久福利软件| 日本女优在线视频一区二区 | 欧美精品一区二区三区蜜桃| 国产一区二区三区| 日本一区二区成人在线| 成人精品视频.| 综合欧美亚洲日本| 91蜜桃在线免费视频| 亚洲va国产天堂va久久en| 日韩写真欧美这视频| 国产99久久久国产精品免费看 | 国产精品中文有码| 国产精品电影一区二区三区| 91九色最新地址| 久久国内精品视频| 日本一区二区三区高清不卡| 色哟哟国产精品| 免费成人在线视频观看| 国产亚洲精品aa| 欧美中文字幕一区二区三区亚洲 | 青娱乐精品视频| 久久久国产午夜精品| 色综合天天做天天爱| 日本不卡一区二区三区 | 日韩高清一区在线| 久久综合av免费| 在线观看三级视频欧美| 麻豆成人免费电影| 专区另类欧美日韩| 欧美一级搡bbbb搡bbbb| av亚洲精华国产精华精| 日韩精品亚洲专区| 国产亚洲精品资源在线26u| 欧美在线免费视屏| 国产在线播放一区| 亚洲毛片av在线| 精品国产一区二区亚洲人成毛片| 91视频xxxx| 蜜臀av性久久久久av蜜臀妖精| 久久久久久麻豆| 欧美日韩成人在线| 国产99久久久久久免费看农村| 亚洲电影一区二区| 欧美国产一区二区在线观看| 欧美图片一区二区三区| 成人精品视频.| 美脚の诱脚舐め脚责91| 中文字幕乱码一区二区免费| 欧美性欧美巨大黑白大战| 高清国产一区二区| 免费人成精品欧美精品| 亚洲免费在线观看视频| 中文字幕第一页久久|