//中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的更多相关文章

  1. [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)

    [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...

  2. Python入门篇-数据结构树(tree)的遍历

    Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...

  3. Python入门篇-数据结构树(tree)篇

    Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...

  4. 【数据结构】K-D Tree

    K-D Tree 这东西是我入坑 ICPC 不久就听说过的数据结构,但是一直没去学 QAQ,终于在昨天去学了它.还是挺好理解的,而且也有用武之地. 目录 简介 建树过程 性质 操作 例题 简介 K-D ...

  5. 「数据结构」Link-Cut Tree(LCT)

    #1.0 简述 #1.1 动态树问题 维护一个森林,支持删除某条边,加入某条边,并保证加边.删边之后仍然是森林.我们需要维护这个森林的一些信息. 一般的操作有两点连通性,两点路径权值和等等. #1.2 ...

  6. 数据结构(二) 树Tree

    五.树 树的定义   树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法.         结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一 ...

  7. Python与数据结构[3] -> 树/Tree[2] -> AVL 平衡树和树旋转的 Python 实现

    AVL 平衡树和树旋转 目录 AVL平衡二叉树 树旋转 代码实现 1 AVL平衡二叉树 AVL(Adelson-Velskii & Landis)树是一种带有平衡条件的二叉树,一棵AVL树其实 ...

  8. Python与数据结构[3] -> 树/Tree[1] -> 表达式树和查找树的 Python 实现

    表达式树和查找树的 Python 实现 目录 二叉表达式树 二叉查找树 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不 ...

  9. Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现

    二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...

随机推荐

  1. 【模拟】HHHOJ#251. 「NOIP模拟赛 伍」高精度

    积累模拟经验 题目描述 维护一个二进制数,支持如下操作 "+" 该数加 11 "-" 该数减 11 "*" 该数乘 22 "\&q ...

  2. 初识Mysql之基本简单语法总结

    一.  DDL(data definition language)语句:数据定义语言. 这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用语句关键字:create.drop.alter ...

  3. linux下jdk安装步骤

    1. 登录Linux,切换到root用户 su root 获取root用户权限,当前工作目录不变(需要root密码) 或 sudo -i 不需要root密码直接切换成root(需要当前用户密码) 2. ...

  4. 为PHPcms扩展json采集

    最近想用phpcms做个新闻类网站,做采集的时候发现没有json的选项,于是自己动手,增加了采集json选项. 由于有的网站并不是纯json传输,而是jsonp,因此我把json,jsonp数据都当做 ...

  5. DC 课程内容

  6. paper:synthesizable finite state machine design techniques using the new systemverilog 3.0 enhancements 之 standard verilog FSM conding styles(二段式)

    1.Two always block style with combinational outputs(Good Style) 对应的代码如下: 2段式总结: (1)the combinational ...

  7. 使用GD库做图片水印

    png图片作为水印加到其他类型图片后,背景变黑色 原因: imagecopy函数拷贝时可以保留png图像的原透明信息,而imagecopymerge却不支持图片的本身的透明拷贝. 然后直接上代码: / ...

  8. Codeforces Round #505 D. Recovering BST(区间DP)

    首先膜一发网上的题解.大佬们tql. 给你n个单调递增的数字,问是否能够把这些数字重新构成一棵二叉搜索树(BST),且所有的父亲结点和叶子结点之间的gcd > 1? 这个题场上是想暴力试试的.结 ...

  9. Linux学习-磁盘配额 (Quota) 的应用与实作

    什么是 Quota 在 Linux 系统中,由于是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生, 如 果其中有少数几个使用者大量的占掉了硬盘空间的话,那势必压缩其他使用者的使用权力! ...

  10. 【报错】invalid or unexpected token

    结果发现是把英文的,写成了中文字符,系统没法识别.