判别结点u是否为结点v的子孙(二)
来源:互联网 发布:致知力行是什么意思 编辑:程序博客网 时间:2024/06/06 00:05
假定用两个一维数组L[1..n]和R[1..n]作为有n个结点的二叉树的存储结构, L[i]和R[i]分别指示结点i的左孩子和右孩子,0表示空。试写一个算法,先由L和R建立一维数组T[1..n],使T中第i(i=1,2,...,n)个分量指示结点i的双亲,然后判别结点u是否为结点v的子孙。
一维数组类型Array1D的定义:
typedef int Array1D[MAXSIZE];实现函数如下:
Status Dencend(Array1D L, Array1D R, int n, int u, int v, Array1D T)/******************************************************************/{ int i,temp; for(i = 1 ;i <= n; ++i){ //先由L和R建立一维数组T T[L[i]] = i; T[R[i]] = i; } temp = T[u]; while(temp != 0){ if(temp == v)//判断u是否为v的子孙 return TRUE; else//继续递归 temp = T[temp]; }//循环结束,如果u还不是v的子孙,直接返回FALSE return FALSE;}
0 0
- 判别结点u是否为结点v的子孙(二)
- 判别结点u是否为结点v的子孙(一)
- {数据结构}判断结点u是否为结点v的子孙
- 6_34_扩展判断u是否为v的子孙
- 6.33③ 假定用两个一维数组L[1..n]和R[1..n]作为 有n个结点的二叉树的存储结构, L[i]和R[i]分别指 示结点i的左孩子和右孩子,0表示空。试写一个算法 判别结点u是否为结点v的
- 6_33_两个一维数组判断u是否为v的子孙
- 头结点是否为空的问题
- 求二叉树的每个结点的子孙数量
- 第十九周项目一(二):动态链表体验二(输出链表中是否有值为x的结点)
- 第十八周项目一(2):输出链表中是否有值为x的结点
- 第十八周项目一(4):删除结点值为x的结点
- 删除二叉树中度为0的结点(即叶子结点)
- 项目一--删除结点值为X的结点
- 删除单链表中重复结点(结点值为整数)
- 在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点
- 判断带头结点的链接字符串是否为回文 ("Was it a cat i saw")
- 项目一--输出链表中是否有值为X的结点
- 为查询出的区域添加父区域、级别、是否叶结点
- PV操作经典问题
- 3-4. 成绩转换
- 如何让Eclipse关联SDK帮助文档实现帮助自动弹出
- Java线程:新特征-原子量
- 利用备份恢复oracle的触发器
- 判别结点u是否为结点v的子孙(二)
- Java线程:新特征-障碍器
- 4-0. 求符合给定条件的整数集
- 黑马程序员_@property和@synthesize
- Java线程:大总结
- 浅谈Sun JVM中的内存管理及调优
- android 平台上的移动SNS (一)
- c语言的字符串分解——strtok函数和strsep函数
- java web 学习基础(二)JSP基础语法