三叉链表的建立
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; //};
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- PHP中模拟链表和链表的基本操作示例
- C语言双向链表的表示与实现实例详解
- js链表操作(实例讲解)
- C语言实现输出链表中倒数第k个节点
- C++语言实现线性表之链表实例
- STL list链表的用法详细解析
- C语言创建链表错误之通过指针参数申请动态内存实例分析