社区
C语言
帖子详情
请教:如何在二叉树中查找度数为一的结点
snsn1984
博客专家认证
2005-08-30 09:00:08
要在二叉树中查找度数为一的结点怎么找?
希望知道的朋友能告诉我主要思想,关键代码最好也写一下吧!
先谢谢了!
...全文
220
8
打赏
收藏
请教:如何在二叉树中查找度数为一的结点
要在二叉树中查找度数为一的结点怎么找? 希望知道的朋友能告诉我主要思想,关键代码最好也写一下吧! 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
snsn1984
2005-09-01
打赏
举报
回复
谢谢各位朋友啊!
foochow
2005-08-30
打赏
举报
回复
遍历一遍不就可以了:-)
heguosheng
2005-08-30
打赏
举报
回复
这个。。。
方法太多,随便用一个吧,只要实现遍历就OK了
snowbirdfly
2005-08-30
打赏
举报
回复
可以用递归算法实现~
snsn1984
2005-08-30
打赏
举报
回复
谢谢啊!呵呵...我光顾着想度数为一的接点有什么特别的特征了,忘了遍历的时候顺便判断一把就可以了啊!
zhouhuahai
2005-08-30
打赏
举报
回复
楼主只要把这段代码稍做修改便成.
1.增加二叉树的struct 定义.(BitTree)
如struct BitTree{
int data;
struct BitTree *left;
struct BitTree *right;
}BitTree;
2.遍历时增加判断条件.即左子树为空或右子树为空.
zhouhuahai
2005-08-30
打赏
举报
回复
先序遍历非递归算法
#define maxsize 100
typedef struct
{
Bitree Elem[maxsize];
int top;
}SqStack;
void PreOrderUnrec(Bitree t)
{
SqStack s;
StackInit(s);
p=t;
while (p!=null || !StackEmpty(s))
{
while (p!=null) //遍历左子树
{
visite(p->data);
push(s,p);
p=p->lchild;
}//endwhile
if (!StackEmpty(s)) //通过下一次循环中的内嵌while实现右子树遍历
{
p=pop(s);
p=p->rchild;
}//endif
}//endwhile
}//PreOrderUnrec
zhouhuahai
2005-08-30
打赏
举报
回复
用一种遍历方法(前序,后序,中序)对二叉树进行遍历,
凡是找到只有左子树或只有右子树的结点,就记录下来.
遍历都是用递归的.
如:
对T进行前序遍历是先访问树根n,然后依次前序遍历T1,T2......。
n
/ \
T1 T2
代码就不用写了吧,网上到处都是.
二叉树
查找
结点
及父
结点
6
二叉树
查找
结点
及父
结点
(5分) 编写程序在
二叉树
中
查找
给定
结点
及父
结点
。
二叉树
结点
的数据域值不等于0的整数。 输入格式: 输入第1行为一组用空格间隔的整数,表示带空指针信息的
二叉树
先根序列,其
中
空指针用0表示。例如1 5 8 0 0 0 6 0 0表示如下图的
二叉树
。第2行为整数m,表示查询个数。接下来m行,每行为一个不等于0的整数K,表示要
查找
的
结点
的数据值。m不超过100,
二叉树
结点
个数不超过150000,高度不超过6000。输入数据保证
二叉树
各
结点
数据值互不相等。 输出格式: 输出..
二叉树
中
查找
一个
结点
在
二叉树
中
查找
一个
结点
在
二叉树
中
查找
一个
结点
,如果找到返回
结点
地址,如果没找到,返回NULL
查找
策略:优先左,如果是空树,返回NULL;如果
查找
的是根,直接返回根的地址,先去左子树
中
找,如果找到了,返回结果,如果左子树也没有找到,再去找右子树。 Node * Search(BNode *root, TDatatype key) { if (root == NULL) { return...
在
二叉树
中
查找
值为x的
结点
,打印值为x的
结点
的所有祖先,假设值为x的
结点
不多于一个。
在
二叉树
中
查找
值为x的
结点
,打印值为x的
结点
的所有祖先,假设值为x的
结点
不多于一个。 采用非递归后序遍历算法,最后访问根节点,访问到值为x的
结点
时,栈
中
所有元素为该
结点
的祖先,从栈底到栈顶
结点
再加上当前访问的
结点
,刚好构成从根节点到当前访问
结点
的一条路径。在很多算法设计
中
都可以利用这一思路来求解,如求根到某
结点
的路径、求两个
结点
的最近公共祖先等。 栈的基本操作以严蔚敏编写的教材为准。 void P...
求
二叉树
中
度为1的
结点
个数
内容: 若用二叉链表作为
二叉树
的存储表示,设计算法求
二叉树
中
度为1的
结点
个数。 步骤: 1.算法分析 本题需要采用二叉链表作为
二叉树
的存储结构,来求解
二叉树
中
度为1的
结点
个数。大体上分为两部分,第一,建立
二叉树
,此处采用先序的方式建立
二叉树
,其次需要用二叉链表来存储一棵
二叉树
,任意的
二叉树
中
,每个
结点
最多有两个孩子,一个双亲
结点
,因此在一个
结点
中
只需要包括数据域、左孩子和右孩子即可,当左孩子或右孩子不存在时,用符号#表示,声明
二叉树
的二叉链表
结点
的结构如下: typedef struct BiT.
王道课后习题4.3.12:在
二叉树
中
查找
值为x的
结点
,打印值为x的
结点
的所有祖先,假设值为x的
结点
不多于一个
算法思想:采用非递归后序遍历,最后访问根
结点
,当访问到值为x的
结点
时,栈
中
所有元素均为该
结点
的祖先,依次出栈打印即可。 int PrintParent_1(TNode* &p,char x) { Stack S; InitStack(S); TNode* r=NULL; while(!StackEmpty(S)||p!=NULL) { ...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章