事故二叉树计算机算法—工矿企业.doc
事故二叉树计算机算法 — 工矿企业 【摘 要】 根据《数据结构》中的二叉树算法 ,结合事故树算法的特点 ,提出事故二叉树算法。该算法是对事故树求解算法的有益补充和发展,具有广阔的应用前景和现实意义。 【关键词】 事故树 二叉树 二叉树遍历 事故二叉树 二叉树结点分裂法 Algorithm of Fault Binary Tree Yu Xiangqian Cai Sijing (School of Resources Engineering, the University of Science double hori; int vert; char *info; int gate,chinum; struct node *pare,*nsib; …… (还可以继续扩充 ) }; 对应图 1的事故二叉树的存储结构表示如图 2。 图 2 对应图 1的事故二叉树的存储结构 事故二叉树的存储结构建立过程很简单,只需输入那些“发生了火灾”、“在房屋火灾中受伤”等汉字信息及与非门类型及有没有孩子的 yes or no 选择,其它信息诸如结点水平方向坐标、结点垂直方向坐标、结点的孩子个数等信息,都可以靠编写二叉树遍历程序计算出。 3 事故二叉树绘图 下面所示的 3个函数分别为求结点的垂直坐标、水平坐标、孩子个数的函数。这对计算机辅助事故树绘图很有意义。 /*求事故树的结点的垂直坐标。 */ void level(struct node *gen, int lev) { if(gen){ gen->vert=lev; level(gen->fch,lev+1); level(gen->nsib,lev); }; } /* 求事故树的结点的水平坐标,其中 ho为全局 double变量。*/ void horizon(struct node *root) {if(root){if(!root->fch){root->hori=ho; ho=ho+1; if(root->pare)root->pare->hori=root->pare->hori+root-> hori/(double)(root->pare->chinum); horizon(root->nsib); } else {horizon(root->fch); if(root->pare)root->pare->hor