1、二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^(i 1)个结点。
深度为k的二叉树至多有2^k 1个结点;对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0 = n2 + 1。二叉树算法常被用于实现二叉查找树和二叉堆。
2、递归算法(英语:recursion algorithm)在计算机科学中是毁或指一种通过重复将问宽乱题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科慎余档学中十分重要的一个概念。
递归算法能够解决的问题
数据的定义是按递归定义的。如Fibonacci函数。
问题解法按递归算法实现。如Hanoi问题。
数据的结构形式是按递归定义的。如二叉树、广义表等。
数据结构中最基本的算法有:御正查找、排序、快速排序,堆排序,归并排序,,二分搜索算法
等等。
1、用的最多也是最简单的数据结构是线性表。
2、有前途的又难数据结构是图 。
3、常用的80%算法是排序和查找。
排序常用的算法有:插入算法(直接插入算法、折半插入算法、希尔算法)、选择算法(简单选择算法、堆排序算法)、快速算法(冒泡排序、快速排序算法)
以下程序给出了各种算法的实现,其接口为void sort(int *array,int len),每个文件实现一个算法, 最后和main.c文件编译实现。
1、直接插入算法://direct_insert_sort.c
2、折半插卜拆陆入排序://binary_insert_sort.c
3、希型顷尔排序://shell_sort.c
4、简单选择排序://simple_select_sort
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)