数据结构与算法
文章平均质量分 50
pengchenxin
这个作者很懒,什么都没留下…
展开
-
二叉搜索树的创建和删除
一、二叉搜索树的概念二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不为空,则左子树上所有结点的值都小于根结点的值。2.若它的右子树不为空,则右子树上所有结点的值都大于根结点的值。3.它的左右子树也分别是二叉搜索树。下面就是一颗二叉搜索树二、二叉搜索树的算法实现...翻译 2022-01-06 11:05:56 · 3716 阅读 · 0 评论 -
堆排序实现哈夫曼树
哈夫曼树1.哈夫曼树:假设由m个权值{W1,W2,…,Wm},可以构造一棵含m个叶子结点的二叉树,第i个叶子结点的权为Wi,则其中带权路径长度WPL最小的二叉树称作最优二叉树或哈夫曼树。2.哈夫曼树的目的:找出存放一串字符所需的最少的二进制编码3.哈夫曼树的建立:Huffman为了减少通信系统中字符编码所需要的二进制位长度,提出了用于产生不定长的前缀编码算法,所谓前缀编码是指任意一个编码都不是其它编码的前缀。前缀编码的思想就是对于出现概率较大的字符采用短编码方式,对于出现概率比较小的字符采用长编码方式原创 2022-01-04 17:13:49 · 877 阅读 · 0 评论 -
二叉树的存储与遍历
文章目录二叉树的存储结构遍历二叉树二叉树的存储结构1.顺序存储结构存储的结构体为:typedef struct{ DataType data[MaxTreeNodeNum]; int n;}QBTree;这种存储方式的优点是:空间利用率高、寻找孩子和双亲比较容易。缺点:若二叉树不是完全二叉树的话,那么就必然会有空缺的位置,空缺的位置需要用特定的符号填补,若空缺节点比较多,势必造成空间利用率的下降。2.链式存储结构结构体为:typedef struct bnode{原创 2021-12-31 10:02:35 · 740 阅读 · 0 评论 -
数据结构--递归算法
一、递归的定义递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。二、递归的三要素在我们了解了递归的基本思想及其数学模型之后,我们如何才能写出一个漂亮的递归程原创 2021-11-19 19:56:16 · 1098 阅读 · 0 评论 -
用C语言栈实现进制转换
#include<stdio.h>#include<stdlib.h>#include<windows.h>#define MAXSIZE 100typedef struct //定义栈的结构体{int data[MAXSIZE];int top;}Se,*Pe;Pe begin(); //栈的初始化void ru(Pe S,int x); //入栈函数P原创 2020-10-19 11:36:11 · 3660 阅读 · 3 评论