C语言实现计算树的深度的方法
本文实例讲述了C语言实现计算树的深度的方法。是算法设计中常用的技巧。分享给大家供大家参考。具体方法如下:
/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> using namespace std; struct Node { Node(int i = 0, Node *l = NULL, Node *r = NULL) : data(i), left(l), right(r) {} int data; Node *left; Node *right; }; Node* Construct() { Node *node4 = new Node(7, NULL, new Node(3)); Node *node3 = new Node(4); Node *node2 = new Node(12); Node *node1 = new Node(5, node3, node4); Node *root = new Node(10, node1, node2); return root; } int GetTreeHeight(Node *root) { if(root == NULL) return 0; return max(GetTreeHeight(root->left) + 1, GetTreeHeight(root->right) + 1); } void main() { Node *root = Construct(); int height = GetTreeHeight(root); cout << "tree height is: " << height << endl; }
希望本文所述实例对大家C程序算法设计的学习有所帮助。
相关推荐
-
C语言科学计算入门之矩阵乘法的相关计算
1.矩阵相乘 矩阵相乘应满足的条件: (1) 矩阵A的列数必须等于矩阵B的行数,矩阵A与矩阵B才能相乘: (2) 矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数: (3) 矩阵C中第i行第j列的元素等于矩阵A的第i行元素与矩阵B的第j列元素对应乘积之和,即 如: 则: 2. 常用矩阵相乘算法 用A的第i行分别和B的第j列的各个元素相乘求和,求得C的第i行j列的元素,这种算法中,B的访问是按列进行访问的,代码如下: void arymul(int a[4][5], int b[
-
C语言中计算正弦的相关函数总结
C语言sin()函数:正弦函数 头文件: #include <math.h> sin() 函数用来求给定值的正弦值,其原型为: double sin(double x); [参数]给定的值(弧度). [返回值]返回-1 至1 之间的计算结果. 弧度与角度的关系为: 弧度 = 180 / π 角度 角度 = π / 180 弧度 使用 rtod( ) 函数可以将弧度值转换为角度值. 注意,使用 GCC 编译时请加入-lm. 举例如下: #include <stdio.h> #incl
-
C语言中字符的输入输出以及计算字符个数的方法详解
C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成,行末是一个换行符.标准库负责使每个输入/输出流都能够遵守这一模型.使用标准库的 C 语言程序员不必关心在程序之外这些行是如何表示的. 标准库提供了一次读/写一个字符的函数,其中最简单的是 getchar 和 putchar 两个函数.每次调用时,getchar 函数从文本流中读入下一个输入字符,并将
-
c语言计算三角形面积代码
复制代码 代码如下: //面积公式s = (a+b+c) / 2 area = sqrt(s * (s - a) * (s - b) * (s - c));//小作业 求三角形的面积 int check(double a);int check2(double a, double b, double c); #include <stdio.h>#include <math.h>int main(void){ double area = 0; double s;
-
C语言简单实现计算字符个数的方法
本文实例讲述了C语言简单实现计算字符个数的方法.分享给大家供大家参考.具体如下: char_counting.c如下: #include<stdio.h> int main() { long nc; nc = 0; while(getchar() != '0') { ++nc; } printf("%ld\n", nc); } 编译和使用下: 复制代码 代码如下: gcc char_counting.c -o char_counting.o 一种通常的调用方式: 复制代码
-
C语言中计算二叉树的宽度的两种方式
C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth(BinaryTree pointer){ int width[10];//加入这棵树的最大高度不超过10 int maxWidth=0; int floor=1; if(pointer){ if(floor==1){//如果访问的是根节点的话,第一层节点++; width[floor]++; flo
-
C语言求幂计算的高效解法
本文实例演示了C语言求幂计算的高效解法.很有实用价值.分享给大家供大家参考.具体方法如下: 题目如下: 给定base,求base的幂exp 只考虑基本功能,不做任何边界条件的判定,可以得到如下代码: #include <iostream> using namespace std; int cacExp(int base, int exp) { int result = 1; int theBase = 1; while (exp) { if (exp & 0x01) result =
-
安装OpenMPI来配合C语言程序进行并行计算
安装OPENMPI 由于是实验,也不进行多机的配置了,只在虚拟机里安装吧.多个机器的配置可以参考此文 最简单的方法,apt安装 sudo apt-get install libcr-dev mpich2 mpich2-doc 测试 hello.c /* C Example */ #include <mpi.h> #include <stdio.h> int main (int argc, char* argv[]) { int rank, size; MPI_Init (&
-
C语言 坐标移动详解及实例代码
题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔. 非法坐标点需要进行丢弃.如AA10; A1A; $%$; YAD; 等. 下面是一个简单的例子 如: A10;S20;W10;D30;X;A1A;B10A11;;A10; 处理过程: 起点(0,0) + A10 = (
-
C语言实现直角坐标转换为极坐标的方法
本文实例讲述了C语言实现直角坐标转换为极坐标的方法.分享给大家供大家参考,具体如下: #include<stdio.h> #include<math.h> struct complex_s{ double x,y; }; double real_part(struct complex_s z){ return z.x; } double img_part(struct complex_s z){ return z.y; } double magnitude(struct compl
-
北邮计算机考研复试题的C语言解答精选
二进制数 题目 题目描述: 大家都知道,数据在计算机里中存储是以二进制的形式存储的. 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的. 你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0. 输入: 第一行,一个数字T(T<=1000),表示下面要求的数字的个数. 接下来有T行,每行有一个数字n(0<=n<=10^8),表示要求的
随机推荐
- 基于AGS JS开发自定义贴图图层
- 学习JavaScript设计模式之享元模式
- ASP.NET缓存处理类实例
- Windows下的PHP安装pear教程
- 基于JavaScript 数据类型之Boolean类型分析介绍
- mysql 5.7.18 安装教程及问题汇总
- Python 多线程Threading初学教程
- 基于JavaScript实现随机颜色输入框
- jQuery webuploader分片上传大文件
- CCNA笔记Router
- javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第1/2页
- MongoDB中的主从同步配置和mongod相关启动命令讲解
- jquery制作图片时钟特效
- swift中AnyObject和Any的介绍与区别详解
- 批量将ppt转换为pdf的Python代码 只要27行!
- Android编程判断当前应用是否在后台运行的方法示例
- Golang 统计字符串字数的方法示例
- 利用spring boot如何快速启动一个web项目详解
- 详解Linux用户态与内核态通信的几种方式
- C++实现推箱子小游戏源码