事二叉树计算机算法—工矿企业
摘 根数结构中二叉树算法结合事树算法特点提出事二叉树算法该算法事树求解算法益补充发展具广阔应前景现实意义
关键词 事树 二叉树 二叉树遍历 事二叉树 二叉树结点分裂法
Algorithm of Fault Binary Tree
Yu Xiangqian Cai Sijing
(School of Resources Engineering the University of Science & Technology Beijing)
Abstract On the basis of the algorithm of binary tree in DATA STRUCTURES and the algorithm of fault tree the algorithm of fault binary tree is put forward It's an useful compliment and step forawrd of the algorithm of fault tree It opens up a vast range of application prospects and has practcal significance
Key words: Binary tree Fault tree Traversing binary tree Fault binary tree
Algorithm of splitting the node of binary tree
1 前 言
年计算机辅助事树分析方法发展快新算法断提出文根数结构[1]中二叉树算法结合事树算法特点提出事二叉树算法通建立事二叉树利文介绍系列事二叉树算法仅方便实现事树定性分析中割集径集求解实现事树定量分析中顶事件发生概率基事件概率重度界重度求解实现计算机辅助事树绘图中坐标计算问题该算法事树求解算法益补充发展具现实意义广阔应前景
2 事二叉树存储结构
事树逻辑结构事二叉树存储结构间应关系文举例说明
事树逻辑结构举例:应图1事二叉树结点存储结构:
表1 事二叉树结点存储结构
第
孩 子水方
坐 标垂直方
坐 标结点
信 息非门
标 志结点
孩子数结点
双 亲结点
兄弟*fchhoriverti*infogatechinum*pare*nsib
事二叉树结点存储结构C语言定义:
图1 事树举例
struct node {
struct node *fch
double hori
int vert
char *info
int gatechinum
struct node *pare*nsib
……(继续扩充)
}
应图1事二叉树存储结构表示图2
图2 应图1事二叉树存储结构
事二叉树存储结构建立程简单需输入发生火灾房屋火灾中受伤等汉字信息非门类型没孩子yes or no 选择信息诸结点水方坐标结点垂直方坐标结点孩子数等信息编写二叉树遍历程序计算出
3 事二叉树绘图
面示3函数分求结点垂直坐标水坐标孩子数函数计算机辅助事树绘图意义
*求事树结点垂直坐标*
void level(struct node *gen int lev)
{
if(gen){ gen>vertlev
level(gen>fchlev+1)
level(gen>nsiblev)
}
}
* 求事树结点水坐标中ho全局double变量*
void horizon(struct node *root)
{if(root){if(root>fch){root>horiho
hoho+1
if(root>pare)root>pare>horiroot>pare>hori+root>
hori(double)(root>pare>chinum)
horizon(root>nsib)
}
else {horizon(root>fch)
if(root>pare)root>pare>horiroot>pare>hori+root>
hori(double)(root>pare>chinum)
horizon(root>nsib)
}
}
}
*求结点孩子数目程序*
void childnum(struct node *root)
{
struct node *p
int i
图3 事树举例
if(root){ proot>fch i0
while(p) { pp>nsib
i++
}
root>chinumi
childnum(root>fch)
childnum(root>nsib)
}
}
4 事二叉树结点分裂法
割集求法[2]行列法结构法布尔代数化简法质数代入法矩阵法方法难计算机语言实现受数组定义限制影响动态扩充存储空间面介绍种二叉树结点分裂法:
图4 图3示事树存储结构
假设棵事树逻辑结构图3
二叉树存储结构图4
外定义棵二叉树结点存储结构C语言定义:
struct jiedian{
图5 二叉树初始化
struct jiedian *zongxiang
char *info
struct jiedian *hengxiang
………(继续扩充)
}
图6 二叉树遍历分裂程
开始图5示棵二叉树然棵二叉树进行遍历遍历遇结点信息代表门时该结点进行横分裂遍历遇结点信息代表门时该结点进行分裂次二叉树遍历完紧接着进行次遍历直遍历遇结点信息代表着叶子结点信息止遍历分裂程图6
结果成zongxiang指针连接起链表链表便图3示事树割集然链表元素进行较应该删元素进行删图3示事树割集图7
径集求解割集求解类似
5 事二叉树算法扩展
事树定量分析中顶事件发生概率计算方法需事二叉树结点中增加结点事件发生概率域结点事件发生概率域然适改进前面提求事树结点水坐标算法便计算出
图2 应图1事二叉树存储结构
事二叉树存储结构建立程简单需输入发生火灾房屋火灾中受伤等汉字信息非门类型没孩子yes or no 选择信息诸结点水方坐标结点垂直方坐标结点孩子数等信息编写二叉树遍历程序计算出
3 事二叉树绘图
面示3函数分求结点垂直坐标水坐标孩子数函数计算机辅助事树绘图意义
*求事树结点垂直坐标*
void level(struct node *gen int lev)
{
if(gen){ gen>vertlev
level(gen>fchlev+1)
level(gen>nsiblev)
}
}
* 求事树结点水坐标中ho全局double变量*
void horizon(struct node *root)
{if(root){if(root>fch){root>horiho
hoho+1
if(root>pare)root>pare>horiroot>pare>hori+root>
hori(double)(root>pare>chinum)
horizon(root>nsib)
}
else {horizon(root>fch)
if(root>pare)root>pare>horiroot>pare>hori+root>
hori(double)(root>pare>chinum)
horizon(root>nsib)
}
}
}
*求结点孩子数目程序*
void childnum(struct node *root)
{
struct node *p
int i
图3 事树举例
if(root){ proot>fch i0
while(p) { pp>nsib
i++
}
root>chinumi
childnum(root>fch)
childnum(root>nsib)
}
}
4 事二叉树结点分裂法
割集求法[2]行列法结构法布尔代数化简法质数代入法矩阵法方法难计算机语言实现受数组定义限制影响动态扩充存储空间面介绍种二叉树结点分裂法:
图4 图3示事树存储结构
假设棵事树逻辑结构图3
二叉树存储结构图4
外定义棵二叉树结点存储结构C语言定义:
struct jiedian{
图5 二叉树初始化
struct jiedian *zongxiang
char *info
struct jiedian *hengxiang
………(继续扩充)
}
图6 二叉树遍历分裂程
开始图5示棵二叉树然棵二叉树进行遍历遍历遇结点信息代表门时该结点进行横分裂遍历遇结点信息代表门时该结点进行分裂次二叉树遍历完紧接着进行次遍历直遍历遇结点信息代表着叶子结点信息止遍历分裂程图6
结果成zongxiang指针连接起链表链表便图3示事树割集然链表元素进行较应该删元素进行删图3示事树割集图7
径集求解割集求解类似
5 事二叉树算法扩展
事树定量分析中顶事件发生概率计算方法需事二叉树结点中增加结点事件发生概率域结点事件发生概率域然适改进前面提求事树结点水坐标算法便计算出
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档