数据结构自己实现——Tree and Forest
//中D序??遍???历???二t叉?树???
//先??序??遍???历???二t叉?树???
//后??序??遍???历???二t叉?树???
#include <iostream>
using namespace std; typedef char DataType;
struct BiNode{
DataType data;
struct BiNode *lchild,*rchild;
};
void inOrder(BiNode *p)
{
if(p!=NULL)
{
inOrder(p->lchild);
cout<<p->data;
inOrder(p->rchild);
}
}
void preOrder(BiNode *p)
{
if(p!=NULL)
{
cout<<p->data;
preOrder(p->lchild);
preOrder(p->rchild);
}
}
void postOrder(BiNode *p)
{
if(p!=NULL)
{ postOrder(p->lchild);
postOrder(p->rchild);
cout<<p->data;
}
}
int main()
{
BiNode *p = (BiNode*)malloc( sizeof(BiNode)) ;p->data = '+' ;
BiNode *p1 = (BiNode*)malloc( sizeof(BiNode)),*p2 = (BiNode*)malloc(sizeof (BiNode)); p1->data = '-';p->lchild = p1;p2->data = '*' ;p->rchild = p2;
BiNode *p3 = (BiNode*)malloc( sizeof(BiNode)),*p4 = (BiNode*)malloc(sizeof (BiNode)); p3->data = 'a';p1->lchild = p3;p4->data = '/';p1->rchild = p4;
BiNode *p5 = (BiNode*)malloc( sizeof(BiNode)),*p6 = (BiNode*)malloc(sizeof (BiNode)); p5->data = '+';p2->lchild = p5;p6->data = 'f';p2->rchild = p6;
BiNode *p7 = (BiNode*)malloc( sizeof(BiNode)),*p8 = (BiNode*)malloc(sizeof (BiNode)); p7->data = 'b';p4->lchild = p7;p8->data = 'c';p4->rchild = p8;
BiNode *p9 = (BiNode*)malloc( sizeof(BiNode)),*p10 =(BiNode*)malloc(sizeof (BiNode)); p9->data = 'd';p5->lchild = p9;p10->data = 'e';p5->rchild = p10;
p3->lchild =NULL; p3->rchild =NULL;
p7->lchild =; p7->rchild =;
p8->lchild = ; p8->rchild = ;
p9->lchild = ; p9->rchild = ;
p10->lchild = ; p10->rchild =;
p6->lchild =; p6->rchild =; inOrder(p);
cout<<endl;
preOrder(p);
cout<<endl;
postOrder(p);
return ;
}
//实???现?森?-林??的??Find和??Union
#include <iostream>
using namespace std; #define MAX_PARENT 100
int parent[MAX_PARENT];
void Initialize(int n)
{
int e;
for(e=;e<=n&&e<=MAX_PARENT;e++)
{
parent[e] = ;
}
}
int Find(int e)
{
while(parent[e] && e<MAX_PARENT)
e = parent[e];
return e;
}
void Union(int i,int j)
{
if(j<MAX_PARENT)
parent[j] = i ;
} void Combine(int a,int b)
{
int i = Find(a);
int j = Find(b);
if(i!=j)
Union(i,j);
}
int main()
{
Combine(,);
return ;
}
数据结构自己实现——Tree and Forest的更多相关文章
- [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)
[ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...
- Python入门篇-数据结构树(tree)的遍历
Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...
- Python入门篇-数据结构树(tree)篇
Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...
- 【数据结构】K-D Tree
K-D Tree 这东西是我入坑 ICPC 不久就听说过的数据结构,但是一直没去学 QAQ,终于在昨天去学了它.还是挺好理解的,而且也有用武之地. 目录 简介 建树过程 性质 操作 例题 简介 K-D ...
- 「数据结构」Link-Cut Tree(LCT)
#1.0 简述 #1.1 动态树问题 维护一个森林,支持删除某条边,加入某条边,并保证加边.删边之后仍然是森林.我们需要维护这个森林的一些信息. 一般的操作有两点连通性,两点路径权值和等等. #1.2 ...
- 数据结构(二) 树Tree
五.树 树的定义 树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法. 结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一 ...
- Python与数据结构[3] -> 树/Tree[2] -> AVL 平衡树和树旋转的 Python 实现
AVL 平衡树和树旋转 目录 AVL平衡二叉树 树旋转 代码实现 1 AVL平衡二叉树 AVL(Adelson-Velskii & Landis)树是一种带有平衡条件的二叉树,一棵AVL树其实 ...
- Python与数据结构[3] -> 树/Tree[1] -> 表达式树和查找树的 Python 实现
表达式树和查找树的 Python 实现 目录 二叉表达式树 二叉查找树 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不 ...
- Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...
随机推荐
- 【Python学习之五】高级特性1(切片、迭代、列表生成器、生成器、迭代器)
1.切片 有一个list—>L = [1,2,3,4,5,6,7]或tuple—>T = (1,2,3,4,5,6,7),如果想取得前三个元素,怎么操作? 硬方法,也是低效的方法是:L= ...
- 解析Vue.js中的computed工作原理
我们通过实现一个简单版的和Vue中computed具有相同功能的函数来了解computed是如何工作的.写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指 ...
- laravel5 使用try catch
在laravel5中使用以下代码并没有捕获异常 try{ var_dump($val); }catch (Exception $e){ var_dump($e); } Laravel 5 时代控制器 ...
- html5音频audio对象处理以及ios微信端自动播放和息屏后唤醒的判断---可供参考(功能都完整实现了,只是细节还没处理的很好)
// html模版中的 此处结合了weui样式整合的微信手机端片段代码(不可直接粘贴复制进行使用)里面含有一些php的写法,可直接略过..###重点参考js代码### <div> < ...
- HDU:1251-统计难题(字典树模板,动态建树,静态建树)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memor ...
- BFS:UVa1590-IP Networks (子网掩码相关知识)
IP Networks Alex is administrator of IP networks. His clients have a bunch of individual IP addresse ...
- Hadoop4.2HDFS测试报告之六
测试结论 第一组数据作表格作图: 第二组数据作表格作图: 根据以上图分析得出以下结论: 1. 本地存储的读写速率基本保持23M左右,说明本地存储比较稳定. 2. HDFS存储两个数据节点的读写速率性能 ...
- TextView设置缩略显示
1.代码设置 textview.setSingleLine(); textview.setEllipsiz(TextUtils.TruncateAt.valueOf("END")) ...
- [python 测试框架学习篇] 分享 uiautomator测试框架
uiautomator测试框架 :https://testerhome.com/topics/4194
- EOJ Monthly 2018.1
985月赛,当时鸽了,现在想补一补 A. 石头剪刀布的套路 Time limit per test: 1.0 seconds Memory limit: 256 megabytes 现在有一种石头剪刀 ...