首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >前序二叉树遍历的C解释

前序二叉树遍历的C解释
EN

Stack Overflow用户
提问于 2012-05-02 17:54:00
回答 3查看 292关注 0票数 0

好了,伙计们,我想知道我在这段代码中所做的以下注释。谢谢,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void visit(tree_t *t){
    printf("%c ", t->e + 'A'); // why t->e + 'A', and not just t->e?
}

void tree_preorder(tree_t *t, void (*visit)(tree_t *)){ // i just don't know the parameter void (*visit)(tree_t *). what exactly is (*visit)(tree_t *)?
    if (!t) return; // what's the condition (!t)?
    visit(t);
    tree_preorder(t->l, visit);
    tree_preorder(t->r, visit);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-02 18:03:51

下面是这三个问题的概要。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
printf("%c ", t->e + 'A'); // why t->e + 'A', and not just t->e?

这是一个ascii表假设。

这将使字符移位0x41 (65)。因此,如果您有一个int范围为0- 25的树,则可以打印出A-Z的有效字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(*visit)(tree_t *)

这是一个函数指针。它将在每个节点上调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// what's the condition (!t)?

这是一个null检查,以确保您不在树结构中的叶节点上。

票数 2
EN

Stack Overflow用户

发布于 2012-05-02 17:58:21

可能t->e在0-26的范围内。通过算术添加'A‘字符,你可以得到'A’表示0,'B‘表示1,依此类推。

参数是指向函数的函数指针,该函数接受tree_t指针作为参数并返回void (*visit)(tree_t *)

票数 1
EN

Stack Overflow用户

发布于 2012-05-02 17:58:24

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void (*visit)(tree_t *)

是一个指向函数的指针,该函数不返回任何内容,并接受指向tree_t的指针作为单独的参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!t

是检查指向NULL的指针的最首选方法之一。这意味着你已经到达树中的叶节点,你需要停止你的递归( base case )。

添加'A'可能与我们在中所做的类似

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (isdigit(ch))
    ch = ch-'0';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10419107

复制
相关文章
UIViewController初始化没有 init 导致的 Bug
话说 *** Assertion failure in UITraitCollection * _Nonnull _UIGetCurrentFallbackTraitCollection(void)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3899.13.13/_UIFallbackEnvironment.m:91
韦弦zhy
2019/11/11
2.7K0
UIViewController present UIViewController 的问题
今天写了个demo才发现,当尝试在函数: func application(_ application: UIApplication, didFinishLaunchingWithOptions la
SheltonWan
2019/07/05
1.1K0
iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER
你将了解到在iOS环境下如何进行系统架构设计。我们将简单回顾一些流行的框架,并通过实践一些小例子来比较它们的理论。
iOSSir
2023/03/19
1.4K0
iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER
寻找协调器FindCoordinatorRequest请求流程
我们在分析消费者的时候, 有看到调用FindCoordinatorRequest的请求
石臻臻的杂货铺[同名公众号]
2022/09/28
3030
寻找协调器FindCoordinatorRequest请求流程
Kafka 核心组件之协调器
假设某 topic 有4个分区,消费者组中只有一个消费者,那么这个消费者将消费全部 partition 中的数据。
CoderJed
2018/09/13
3.1K0
Kafka 核心组件之协调器
android定时器取消,Android定时器崩溃取消
我有一个定时器运行,然后熄灭,并做了一些事情,定时器启动罚款。Android定时器崩溃取消
全栈程序员站长
2022/09/15
1.2K0
聊聊iOS中的 MVC、MVP、MVVM以及 VIPER等代码组织方式
但是现实中我们的View依然跟Model耦合,因为如果完全按照这个理想化的MVC的话,View(cell)层的设置都应该在 Controller中,这样的话,Controller会更臃肿。
進无尽
2018/09/12
4.3K0
聊聊iOS中的 MVC、MVP、MVVM以及 VIPER等代码组织方式
UIViewController生命周期
UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会加载或创建它。由于视图由视图控制器管理,所以讨论视图的加载方式时,主要讨论视图控制器的加载方式。
Helloted
2022/06/06
2K0
UIViewController生命周期
iOS 转场动画探究(二)
这篇文章是接着第一篇写的,要是有同行刚看到的话建议从前面第一篇看,这是第一篇的地址:iOS 转场动画探究(一) 接着上一篇写的内容:        上一篇iOS 转场动画探究(一)我们说到了转场要素的第四点,把那个小实例解释完,这篇还有一点我们接着总结:        Demo的下载地址这里再发一次: 这里是Demo的下载地址 5、  转场协调器协议 UIViewControllerTransitionCoordinator        可以通过需要产生动画效果的视图控制器的transitionCoord
Mr.RisingSun
2018/01/15
1.4K0
iOS 转场动画探究(二)
[干货分享]一篇可能会让你爱上MVVM与ReactiveCocoa的文章
ios122
2018/01/02
1.3K0
iOS 转场动画探究(二)
这篇文章是接着第一篇写的,要是有同行刚看到的话建议从前面第一篇看,这是第一篇的地址:iOS 转场动画探究(一)
Mr.RisingSun
2018/07/31
8680
iOS 转场动画探究(二)
iOS14开发-UIViewController
UIViewController 可以理解为 App 的界面,负责管理 UIView 中显示的内容和用户的交互,主要有以下作用:
YungFan
2021/03/02
2.4K0
【iOS】UIViewController生命周期
2》假设view在内存中,则直接载入。相反,假设不存在。则UIViewController调用loadView方法。
全栈程序员站长
2022/07/06
8040
【iOS】UIViewController生命周期
iOS NSString类型转UIViewController
NSString * path = [[NSBundle mainBundle] pathForResource:@"ViewControllers" ofType:@"plist"];
用户9758184
2022/05/18
4900
UIViewController生命周期分析
做一个实验,通过实验来分析viewController的生命周期。 和生命周期几个相关的方法 - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"FirstVC viewDidLoad"); } -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear]; NSLog(@"FirstVC viewWillAppear"); } - (void)didRe
xferris
2018/06/01
7960
tensorflow中协调器 tf.train.Coordinator
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行。在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭。TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。
狼啸风云
2019/07/02
1.3K0
tensorflow中协调器 tf.train.Coordinator
iOS17适配指南之UIViewController
YungFan
2023/07/09
9040
iOS17适配指南之UIViewController
VCTransitionsLibrary –自定义iOS交互式转场动画的库
本文介绍了一种用于iOS的交互式转场实现方案,通过使用UIKit Dynamics和UIKit Layout实现自定义转场效果。具体实现包括两个部分:一是交互式转场动画的实现,通过CGAffineTransformAnimation结合UIView.animateWithDuration()方法实现;二是交互式转场交互的实现,通过监听UIViewControllerTransitionCoordinator方法实现。该方案适用于界面之间的复杂转场交互场景,可以自定义转场动画和交互逻辑,实现更加顺滑、自然的界面转场效果。
ios122
2018/01/02
1.6K0
UIViewController声明周期-iOS11新增UIViewController声明周期-iOS11新增
class subViewController: UIViewController { //nib文件的初始化 override init(nibName nibNameOr
用户8893176
2021/08/09
6770
点击加载更多

相似问题

MVVM协调器和弹出UIViewController

30

UIViewController未取消初始化

10

如果协调器不在RxSwift中,那么在RxSwift + MVVM +协调器的情况下,协调器会去哪里?

35

UIViewController与UIView之间的协调

21

从堆栈中弹出时,不会取消分配ARC UIViewController

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文