算法
shayashi
这个作者很懒,什么都没留下…
展开
-
二叉树的先序、中序、后序、分层遍历
先序遍历(DLR)二叉树的操作为:若二叉树为空,则空操作;否则:(1)访问根节点(2)先序遍历左子树(3)先序遍历右子树中序遍历(LDR)二叉树的操作为:若二叉树为空,则空操作;否则:(1)中序遍历左子树(2)访问根节点(3)中序遍历右子树后序遍历(DLR)二叉树的操作为:若二叉树为空,则空操作;否则:(1)后序遍历左子树(2)后序遍历右子树(3)访问根节点假设一个二...原创 2019-03-16 12:00:59 · 388 阅读 · 0 评论 -
哈夫曼编码代码
给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。由此得到的二进制前缀编码称为哈夫曼编码。例如权w={5,29,7,8,14,23,3,11},8个结点,构造的哈夫曼树如下图所示:算法实现如下:typedef struct { unsigned int weight; unsigned int paren...原创 2019-03-18 10:56:54 · 5123 阅读 · 0 评论 -
排序算法
若序列中i.key == j.key(即序列中两个记录的关键字相等),在排列之前i<j;若排列之后仍然有i<j,则称该排序方法是稳定的。反之,若排序之后i可能大于j,则称排序算法是不稳定的。直接插入排序基本思想:将一个记录插入到已经排好序的有序表中。稳定 时间复杂度:O(n2)O(n^{2})O(n2)代码:void InsertSort(int num[], int n)...原创 2019-03-18 17:42:19 · 150 阅读 · 0 评论