二叉树深度的递归算法
int height(BTNODE *t)
{
if(!t)
{
return 0;
}
int left_height = height(t->left_child);
int right_height = height(t->right_child);
return (left_height > right_height ? left_height+1:right_height+1);
}
遍历二叉树的非递归算法
void PreOrder(BiTree T, Status ( *Visit ) (ElemType e))
{
InitStack(S);
while ( T!=NULL || !StackEmpty(S)){
while ( T != NULL ){
Visit(T->data) ;
Push(S,T);
T = T->lchild;
}
if( !StackEmpty(S) ){
Pop(S,T);
T = T->rchild;
}
}
}
排序算法:
1.数据类型
#define MAXSIZE 20 //一个用作示例的小顺序表的最长长度
typedef int KeyType; //定义关键字类型为整数类型
typedef struct{
KeyType key;//关键字项
InfoType otherinfo;//其他数据项
}RedType;//记录类型
typedef struct{
RedType r[MAXSIZE+1];//r[0]闲置或用作哨兵单元
int length;//顺序表长度
}SqList;
2.直接插入排序
思想:将一个记录插入到已排好的有序表中,从而得到一个新的,记录数增1的有序表
算法:
void InsertSort(SqList &L){
for( i = 2; i<=L.length; ++i )
if( LT(L.r[i].key, L.r[i-1].key) ){ //"<"
L.r[0] = L.r[i] ; //复制为哨兵
L.r[i] = L.r[i-1] ;
for( j = i-2 ; LT(L.r[0].key,L.r[j].key) ; --j )
L.r[j+1] = L.r[j] ; //记录后移
L.r[j+1] = L.r[0] ; //插入到正确位置
}
}
分享到:
相关推荐
本文将深入探讨“常见算法”,包括它们的基本概念、类型以及在实际应用中的作用。 一、算法基本概念 算法是一系列精确的指令,用于解决特定问题或执行特定任务。它由一组有限的步骤组成,这些步骤必须是明确的、可...
算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法...
在这个“java常见算法题解析大全”中,你将找到一系列涵盖不同难度级别的算法问题,旨在帮助Java开发者提升技能,增强解决问题的能力。 首先,让我们了解一下折半查找(Binary Search)算法。这是一种在有序数组中...
Java 实现常见算法 在 Java 中,实现常见算法是非常重要的,以下是关于链表、约瑟环问题、单链表反转、最大子序列和问题、最大公因数、判断两个数组中是否有相同的数字、字符串反转等知识点的总结。 判断链表是否...
一篇吴恩达精彩的机器学习常见算法分类汇总大全,总结的很好。推荐给大家。
计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小...
机器学习常见算法分类 在机器学习领域,算法众多,了解每种算法的特点和应用场景至关重要。根据学习方式和算法类似性,可以将机器学习算法分为几大类。 一、学习方式 机器学习的学习方式可以分为四类:监督式学习...
通过学习这些PPT,参赛者可以深化对ACM常见算法的理解,提高解决问题的能力。同时,实战训练和不断刷题也是提升算法能力的关键。在ACM竞赛中,灵活运用各种算法并快速编写出高效代码是取胜的关键。
计算机常见算法面试题 本资源摘要信息涵盖了计算机常见算法面试题,主要涉及链表、字符串操作、搜索算法等方面的知识点。下面是对标题、描述、标签和部分内容的详细解释: 标题:计算机常见算法面试题 该标题表明...
以下是一些常见的面试算法题及其详解: 1. **二分查找**:二分查找是一种在有序数组中寻找特定元素的搜索算法。它通过不断缩小查找范围,每次将查找区间减半,直到找到目标元素或确定其不存在。了解如何设计递归或...
这篇文档总结了常见机器学习的基本算法,希望能对大家有用!
"编程常见算法.zip"这个压缩包文件包含了一系列关于编程算法的详细资料,旨在帮助学习者理解和掌握这些在企业笔试、面试中常被问到的经典算法。这些算法不仅对于求职者至关重要,也是提升编程能力的关键。 首先,...
本资源“操作系统常见算法算法演示”通过FLASH动画的形式,直观地展示了这些算法的工作原理,为学习者提供了生动的教学辅助。 1. **进程调度算法**:操作系统中的进程调度是决定哪个进程获得CPU执行权的关键步骤。...
机器学习常见算法分类汇总 机器学习是当前数据分析领域的一个热点内容,很多人在平时的工作中都或多或少会用到机器学习的算法。机器学习的算法很多,通过学习方式和算法的类似性可以对常见的机器学习算法进行分类。...
机器学习常见算法分类 机器学习是当前数据分析领域的一个热点容,许多人在平时的工作中都或多或少会用到机器学习的算法。根据学习方式和算法的类似性,我们可以将机器学习算法分类如下: 监督式学习 监督式学习是...
常见算法"这个压缩包文件包含了丰富的C语言编程实例,特别是针对各种常见算法的实现。这些算法是计算机科学的基础,对于提升编程技能,理解和解决实际问题至关重要。 首先,让我们了解一下什么是算法。算法是一系列...
基于多种常见算法实现动态规划项目c++源码+详细注释(回溯、贪心、递归、分支限界、分治等算法).zip基于多种常见算法实现动态规划项目c++源码+详细注释(回溯、贪心、递归、分支限界、分治等算法).zip基于多种常见算法...
"ALG.zip"这个压缩包文件显然包含了关于"alg算法"和"常见算法"的学习资料,这些资源可能是一位有经验的学长留下的宝贵遗产,被多届学生传承使用,足以证明其价值。 首先,我们要理解什么是算法。算法是一系列明确的...
常见算法介绍 排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序 搜索算法 线性搜索 二分搜索 动态规划 贪心算法 回溯算法 算法刷题 排序算法题目 题目1:数组排序 题目2:Kth Largest Element in an Array ...
【资源介绍】C++基于opencv图像处理的经典常见算法是实现源码(含插值、仿射变换、滤波、分割、边缘检测等).zipC++基于opencv图像处理的经典常见算法是实现源码(含插值、仿射变换、滤波、分割、边缘检测等).zipC++...