您的位置:首页 > 其它

三叉链表的建立

2016-03-13 15:35 281 查看
///三叉链表
//#pragma once
//#include<iostream>
//#include<stack>
//using namespace std;
//template<class T>
//struct  BinaryTreeNode_P
//{
//	T  _data;
//	BinaryTreeNode_P<T>* _left;
//	BinaryTreeNode_P<T>* _right;
//	BinaryTreeNode_P<T>* _parent;
//	BinaryTreeNode_P(const T& x)
//		:_data(x)
//		, _left(NULL)
//		, _right(NULL)
//		, _parent(NULL)
//	{}
//};
//
//template<class T>
//class  BinaryTree_P
//{
//protected:
//	BinaryTreeNode_P<T>* _CreateTree(T a[], size_t& index, const size_t size)
//	{
//		BinaryTreeNode_P<T>* root = NULL;
//		if (index < size&&a[index] != '#')
//		{
//			root = new BinaryTreeNode_P<T>(a[index]);
//			root->_left = _CreateTree(a, ++index, size);
//			if (root->_left)
//				root->_left->_parent = root;
//			root->_right = _CreateTree(a, ++index, size);
//			if (root->_right)
//				root->_right->_parent = root;
//		}
//		return root;
//	}
//public:
//	BinaryTree_P()
//		:_root(NULL)
//	{}
//	BinaryTree_P(T* a, size_t size)
//	{
//		size_t index = 0;
//		_root = _CreateTree(a, index, size);
//	}
//	void PreOrder_Non_R()
//	{
//		stack<BinaryTreeNode_P<T>*>  s;
//		if (_root)
//			s.push(_root);
//		while (!s.empty())
//		{
//			BinaryTreeNode_P<T>* top = s.top();
//			cout << top->_data << " ";
//			s.pop();
//			if (top->_right)
//				s.push(top->_right);
//			if (top->_left)
//				s.push(top->_left);
//		}
//		cout << endl;
//	}
//protected:
//	BinaryTreeNode_P<T>* _root;
//};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表 三叉