最大函数c树高度

2024-04-05

c 中是否有 max 函数,所以我可以做这样的事情来计算树高 :或者也许有更好的方法来计算树高。

int height(struct node *tree)
{ 
    if (tree == NULL) return 0;
    return 1 + max(height (tree->left), height (tree->right)); 
}

如果是的话我需要什么?

目前我收到此错误:

dict-tree.o:在函数“高度”中:
/home/ex10/dict-tree.c:36:对“max”的未定义引用


不,没有内置函数。通常您会编写自己的内联函数,例如

static inline int max(int a, int b)
{
    return (a > b) ? a : b;
}

(使用编译器喜欢的任何“内联”提示语法)。不过,就您而言,您也可以手动拼写出来 - 这很简单:

int height(struct node *tree)
{ 
    int height_left, height_right;
    if (tree == NULL) return 0;

    height_left = height (tree->left);
    heigth_right = height (tree->right);

    return 1 + ((height_left > height_right) ? height_left : height_right);
}

注意:当心最大宏陷阱。做类似的事情很诱人

#define MAX(a,b) (((a) > (b)) ? (a) : (b))

然后您可以将其用于任何输入,无论其类型如何,但这里的问题是,如果任何一个输入表达式有副作用,例如MAX(++i, ++j)。那么问题是,对于最大的输入,副作用将被评估两次。如果您要编写 max 代码,则必须使用(内联)函数而不是宏。不幸的是,由于您使用的是 C 而不是 C++,没有重载/模板,这将限制您每个命名 max 函数只能使用一组输入/输出类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最大函数c树高度 的相关文章

随机推荐

  • 如何通过JSON的replacer函数对对象进行字符串化?

    这是我的代码 BAD a 2 b 1 c Nexus d Alligator e 5 f 1431807036 g 2 w 17 b 5 console log JSON stringify BAD a
  • 组图模式在 SPARQL 中如何工作

    首先 我不知道这是否真的称为组图模式 反正 请看看这个查询 select x y where x rdf type rs Recommendable union xd rs doesntexist y 有no rs doesntexist但
  • Paramiko:从公钥字符串创建 PKey

    我试图在低级别使用 SSH 协议 即我不想启动 shell 或任何东西 我只想传递数据 因此 我正在使用Paramiko的Transport http www lag net paramiko docs paramiko Transport
  • 乐谱库

    我是一名 Python 黑客 希望构建一个乐谱应用程序 我很擅长阅读 理解乐谱 弹钢琴多年 这是我完整的新手问题 是否有以数字方式表示笔记的标准 我不想重新发明任何轮子 给定一系列音符和持续时间 是否有一个库可以以乐谱格式显示这些内容 基本
  • 为什么我收到 422 错误代码?

    我正在发出 POST 请求 但除了 422 响应之外无法获得任何内容 Vue js 客户端代码 new Vue el app data form companyName street city state zip contactName p
  • iOS:Facebook 聊天头行为和动画

    这个问题可能有点过时了 但我一直在使用新的 iOS 版 Facebook 的 聊天头 功能 聊天头仅出现在应用程序中 并且想知道 Facebook 是如何实现这一点的 例如 他们如何处理聊天头的拖动动画 以及 当单击聊天头时 他们如何设法将
  • 在redux中间件中使用react-router进行重定向

    我创建了一个中间件来检查请求是否返回无效的访问响应 如果状态是 401 我想将用户重定向到登录页面 这是中间件代码 import React from react import push replace from react router
  • TPageControl 上的 TLinkLabel 背景

    我试图在 TPageControl 上使用 TLinkLabel 但找不到让它使用父级背景的方法 Image removed because the website doesn t exist any more and I can t fi
  • iOS 文本字段验证

    我需要一种方法来确保电话号码有 10 位数字 没有其他字符 即 并确保电子邮件地址是有效的电子邮件 格式正确 有没有任何库不能让我轻松做到这一点 这样我就不必编写正则表达式了 这将检查 UITextField 是否包含 10 位或更少的正确
  • 如何设置使用 ChartFactory.createBarChart 创建的 BarGraph 的 Y 轴范围

    我使用创建了一个条形图jfree chart ChartFactory使用下面的代码 我需要将Y轴的范围设置为0 100 如何设置最大值 import java io File import org jfree chart ChartFac
  • 在 Swift 中仅更改 AttributedText 的字体

    我在 IB 中创建了许多 UILabel 它们都有属性文本 每个标签的文本包含多行不同字体大小和颜色 在运行时 我希望能够仅更改这些标签的字体名称 而不更改现有的字体大小或颜色 我进行了研究 但找不到直接的方法来实现这一目标 有任何想法吗
  • 在现有 Firebase 项目目录中初始化 firebase CLI 功能

    我正在尝试将 托管 功能添加到已安装 Functions 的 Firebase 项目文件中 所以我想知道我是否可以使用 Firebase Init 来做到这一点 否则这将删除我现有的 firebase 功能 无论如何 我可以在不删除 Fir
  • Parallel.ForEach 和 DataTable - DataTable.NewRow() 不是线程安全的“读取”操作吗?

    我正在转换现有的应用程序以利用多个处理器 我有一些嵌套循环 并且我已将最内层循环转换为 Parallel Foreach 循环 在原始应用程序中 在最内层循环内 代码将调用DataTable NewRow 要实例化适当布局的新 DataRo
  • php oop 使用 ajax 登录失败

    我已经使用 php oops 和 ajax 作为登录按钮完成了登录页面 if isset result username 它以 Json 类型返回错误的详细信息 if isset result username 其返回成功的 Json 类型
  • 如何在 AuthenticationSuccessHandler 中检索会话范围的 bean?

    我有一个自定义的 AuthenticationSuccessHandler 我想要做的是在 onAuthenticationSuccess 方法中设置一些会话数据 为了存储会话数据 我想使用会话范围的 bean 它在任何控制器中都可以正常工
  • nginx + php5-fpm 中的错误 502

    我的主题有一些错误 服务器负载不高 CPU约15 内存有几GB 硬盘不忙 但错误 502 大约在 3 的情况下抛出 程序 Debian 6 nginx 0 7 62 php5 fpm 5 3 3 1 在nginx的error log中是这样
  • QThread.wait()函数有什么用?

    我和其他人一样偶然发现了这个问题 QThread 不会停止 不处理信号 https stackoverflow com questions 7432861 qthread wont stop does not process a signa
  • C 语言的完整 x86/x64 JIT 汇编器

    你知道类似的事情吗this http code google com p asmjit 但是可以嵌入到 C 程序中吗 一些选项 LibJIT http www gnu org software dotgnu GNU闪电 http www g
  • 使用maven为eclipse编译器设置Java 6注释处理配置

    为 Java 6 注释处理器设置 eclipse 项目编译器配置的最佳方法是什么 我的解决方案是设置org eclipse jdt apt core prefs and factorypath手动文件 这有点麻烦 在工厂路径文件中引用处理器
  • 最大函数c树高度

    c 中是否有 max 函数 所以我可以做这样的事情来计算树高 或者也许有更好的方法来计算树高 int height struct node tree if tree NULL return 0 return 1 max height tre