99问答网
所有问题
假设二叉书采用二叉链表存储结构,设计一个算法,求二叉树中指定结点x的层数
假设二叉书采用二叉链表存储结构,设计一个算法,求二叉树中指定结点x的层数 很着急正考呢
举报该问题
推荐答案 2009-03-05
可以在中序遍历的基础上,加几条指令.n表示层,初始值为0
下列算法是递归嵌套。
1、n++,遍历当前节点的左子树
2、n--,访问当前节点,如果节点的data==x,那么(意味着找到节点了)打印节点层数
3、n++,遍历当前节点的右子树
递归结束后,如果没有找到X节点不要忘了,打印一下没有找到。
参考资料:
严蔚敏清华大学出版社《数据结构》第二版
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/OOzzXjjz.html
其他回答
第1个回答 2012-12-27
int level(Bnode *T,elementtype X,int h)//只有一个结点时,h=1
{ int t1,t2;
if(T==NULL)return (0);
if(T->data==X) return (h);
if((t1=level(T->lchild,X,h))>1) return (t1+1);
if((t2=level(T->rchild,X,h))>1) return (t2+1);
}
相似回答
以
二叉链表
为
存储结构,
如何编写
算法求二叉树中结点x的
双亲?
答:
如下代码是通过
算法的
方式求父节点,其中
二叉树的
创建是先序方式,如abd##e##c##\x0d\x0a\x0d\x0a#include "stdlib.h"\x0d\x0atypedef int Element;\x0d\x0astruct Tree\x0d\x0a{ \x0d\x0a Element data;\x0d\x0a struct Tree *left; \x0d\x0a struct...
假设二叉树
以
二叉链表
作为
存储结构,
试
设计一个
计算二叉树叶子
结点树的
...
答:
1、首先要定义两个类:结点类和
二叉树
类。2、二叉树类的组成:建立树的函数、遍历函数、删除函数。
求结点
数函数。3、采用递归的思想,遇到标识符表示该结点为空,否则开辟空间创建新
结点,
同时调用递归开辟左结点和右结点。4、前序遍历函数。5、删除函数的思路:如果当前结点不为空
,采用
递归访问左结点...
假设二叉树用二叉链表存储结构
。编写
一个算法
统计
二叉树的结点
个数.
答:
rNum = BiTreeCount(T->rchild);return rNum + lNum + 1;} }
以
二叉链表存储二叉树,
分别写出在
二叉树中
查找值为
x的结点
在树中的层...
答:
以先序为例,遍历
二叉树,
a(Linklist L,int count){ if(L!=NULL){ if(L->data==x){print count; } a(L->lchild,count+1);a(L->rchild,count+1);} } 程序简单了些,大概就是这个意思
以
二叉链表
为
存储结构
。分别写出在
二叉树中
查找值为
X的结点
及
求X
所在的...
答:
//前序查找,如果返回0,说明树中没有这个数 depth参数为 根
结点的层数,
由用户定 int PreSeek(BiTree *T, int data, int depth, NodePos *p){ int ret=0;if (T->data == data){ p->Depth = depth;p->pos = T;ret = 1;} else { if (T->lchild)ret += PreSeek(T->lchild...
以
二叉链表
为
存储结构,
分别写出
求二叉树结点
总数及叶子总数的
算法
...
答:
【答案】:(1)计算结点总数 int CountNode(BinTree*root){ intnum1,num2;if(root==Null)return(0);else if(root->lchild==Null&&rooot->rchild==Null)return(1);else { num 1=CountNode(root->lchild);num 2=CountNode(root->rchild);return(num1+num2+!);} } (2)计算叶子总数...
若
用二叉链表
作为
二叉树的存储
表示,试编写
算法
交换
二叉树中
各
结点的
...
答:
if(rt->lchild == NULL && rt->rchild == NULL)return;else{ temp = rt->lchild;rt->lchild = rt->rchild;rt->rchild = temp;} if(rt->lchild)exchange(rt->lchild);if(rt->rchild)exchange(rt->rchild);} 非递归:Stack是一个定义好的通用堆栈类型,支持初始化/进站/出战等操作 int ...
假设二叉树
以
二叉链表
作为
存储结构,
试
设计一个
计算二叉树叶子
结点树的
...
答:
package cn.zifangsky.tree.binarytree;/** *
二叉树的
单个节点定义 * @author zifangsky * * @param <K> */public class BinaryTreeNode<K extends Object> {private K data; // 数据private BinaryTreeNode<K> left; //左孩子节点private BinaryTreeNode<K> right; //右孩子节点public Binary...
若
二叉树采用二叉链表存储结构,
要交换其所有分支
结点
左、右子树的位置...
答:
1. 交换好左子树 2. 交换好右子树 3. 交换左子树与右子树 其他算法如先序和按层次其逻辑都差不多,即访问当前结点时交换其左右子树。从逻辑上来看稍显别扭一点点。因此说最合适应该是后序遍历,但是从实现上来说先序和按层次都是可以的。1. 交换左子树与右子树 2. 遍历左子树 3. 遍历右子树...
大家正在搜
二叉树链表存储结构
二叉树只能用二叉链表表示
二叉链表存储二叉树
画出该二叉树的二叉链表表示
二叉树的二叉链表画法
以二叉链表为存储结构
二叉树存储结构
二叉链表存储
链表存储结构
相关问题
假设二叉树采用二叉链存储结构,设计一个算法Level o 求...
若用二叉链表作为二叉树的存储表示,试编写算法交换二叉树中各结...
一棵n个结点的完全二叉树以向量(数组)作为存储结构,试设计非...
假设二叉树采用链式存储结构存储,设计一个算法求二叉树中指定结...
假设二叉树采用二叉链表作为存储结构,试编写一个算法:求任意一...
假设二叉树以二叉链表作为存储结构,试设计一个计算二叉树叶子结...
以二叉链表为存储结构。分别写出在二叉树中查找值为X的结点及求...
数据结构试题;设一棵二叉树以二叉链表为存储结构,试写一算法求...