建立一颗多叉树
来源:互联网 发布:往复式和旋转式 知乎 编辑:程序博客网 时间:2024/05/29 19:30
多叉树的建立是很复杂的,因为分支数目不确定,但是我们可以知道多叉树和二叉树其实是可以转化的,我们可以将其转化为二叉树。下面就是使用“子女-兄弟链法”建立的一颗树。
//Tree.h#pragma once#include<iostream>using namespace std;template<class Type>class Tree;template<class Type>class TreeNode{friend class Tree<Type>;public:TreeNode() :data(Type()), nextsibling(NULL), firstchild(NULL){}TreeNode(Type d, TreeNode* L = NULL, TreeNode* C = NULL) :data(d), nextsibling(L), firstchild(C){}~TreeNode(){}private:Typedata;TreeNode<Type>* firstchild;TreeNode<Type>* nextsibling;};template<class Type>class Tree{public:Tree(Type Ref) :root(NULL),Refvalue(Ref){root = NULL;}public:void create(){create(root);}void show(){cout << "PreOder:";PreOder(root);cout << endl;}protected:void create(TreeNode<Type>*& t){Type item;cin >> item;if (item == Refvalue){t = NULL;return;}else{t = new TreeNode<Type>(item);create(t->firstchild);create(t->nextsibling);}}bool empty(){return root == NULL;}void PreOder(TreeNode<Type>*& t){if (t == NULL)return;else{cout << t->data << " "; PreOder(t->firstchild);PreOder(t->nextsibling);}}private:TreeNode<Type>*root;TypeRefvalue;};
建立一颗多叉树有很多种方法,我这里选择的是“子女-兄弟链“法,上面是实现:
这里是先序建立的//RAD#E##BC#F##GHK#####
树的大致形态如下:
1 0
- 建立一颗多叉树
- 建立
- 平台建立
- 建立数据库连接
- 建立作业
- 尾插法建立
- 建立WebService
- blog建立!
- 英文建立
- 建立CADUIPALETTE
- 建立ActionServlet
- 建立批处理文件
- 建立索引
- 建立数据模型
- UML建立
- 建立单链表
- 建立数据库
- 建立承诺
- 指针学习
- 进程间通信机制IPC
- leetcode 21. Merge Two Sorted Lists
- nsoj L. Find a way
- self.x和_x区别
- 建立一颗多叉树
- linux下归档
- 1004-格子中输出
- Java 被访问时报 the method getDispatcherType() is undefined for the type HttpServletRequest
- txt中的内容复制到excel中无法对齐, 该怎么处理?
- 二级联动列表
- 几个小例子让你分清super和this
- 利用US-100超声波传感器测距的核心代码
- 关于openStream方法和openConnection方法的区别