利用二叉树寻找最大值
2026/5/4 6:27:33 网站建设 项目流程
#include <stdio.h> #define MIN 0x8000 typedef struct ELE *tree_ptr; // tree_ptr为ELE结构指针 struct ELE { tree_ptr left; tree_ptr right; int val; }; /* 后序遍历取最大值 */ int traverse(tree_ptr tp) { int leftMax; int rightMax; int subMax; if (!tp) return MIN; leftMax = traverse(tp->left); rightMax = traverse(tp->right); subMax = leftMax > rightMax ? leftMax : rightMax; return tp->val > subMax ? tp->val : subMax; } int main(void) { struct ELE n15 = { NULL, NULL, 15 }; struct ELE n20 = { NULL, NULL, 20 }; struct ELE n2 = { &n15, NULL, 2 }; struct ELE n5 = { &n20, NULL, 5 }; struct ELE root= { &n5, &n2, 10 }; printf("max val=%d",traverse(&root)); return 0; } /* * ** 10 / \ 5 2 / / 20 15 ** */

运行结果:
max val=20

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询