二叉树深度的递归算法
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] ; //插入到正确位置
}
}
分享到:
相关推荐
常见算法 常见算法 常见算法 常见算法 常见算法
常见算法题代码c++ 常见算法题代码c++ 常见算法题代码c++ 常见算法题代码c++ 常见算法题代码c++ 常见算法题代码c++
这是在面试中遇到的一些常见算法题,笔试面试经常遇到,所以总结了一下,方面以后查看,分享给大家。
人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习常见算法人工智能之机器学习...
这里是java常见算法题的集合,貌似包含了500多提的题目及其答案源码和分析过程。比如折半查找,各种排序,还有各种经典的算法小题的java解答。总之,不会令你失望。
一篇吴恩达精彩的机器学习常见算法分类汇总大全,总结的很好。推荐给大家。
计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小公倍数的常见算法计算最大公约数和最小...
机器学习常见算法在建模中的对比.pdf
acm 常见算法 pptacm 常见算法 pptacm 常见算法 pptacm 常见算法 ppt
这篇文档总结了常见机器学习的基本算法,希望能对大家有用!
C语言常见算法示例,C语言常见算法示例,C语言常见算法示例
基于多种常见算法实现动态规划项目c++源码+详细注释(回溯、贪心、递归、分支限界、分治等算法).zip基于多种常见算法实现动态规划项目c++源码+详细注释(回溯、贪心、递归、分支限界、分治等算法).zip基于多种常见算法...
常见算法的MATLAB实现,包含常见的算法和经典的算法。
java常见算法java常见算法java常见算法java常见算法java常见算法java常见算法
Java常见算法 帮你更快更好的理解java
js常见算法实现汇总
常见算法,里面有详细的讲解................................
测试一个链表是否是循环链表java实现 找出单链表的中间节点 求解约瑟环问题 单链表反转问题 最大子序列和问题 计算最大公因数 判断两个数组中是否有相同的数字 字符串反转