![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常用数据结构与算法
文章平均质量分 79
freesum
这个作者很懒,什么都没留下…
展开
-
常用数据结构之Huffman树及应用
从树中一个节点到另一个节点自己的分支构成两个节点之间的路径,路径上的分支数目称做路径长度。树的路径长度就是从树的根节点到每一个节点的长度之和。 假设一颗有N个节点的二叉树,每个叶子节点都带权值wk,每个叶子节点的路径长度为lk。我们称带权路径长度WPL最小的二叉树称做huffman树(最优二叉树)。 huffman树的构造方法: 1、根据k个权值{w1原创 2012-03-17 19:43:38 · 996 阅读 · 0 评论 -
常用数据结构与算法之排序算法
排序算法/* * ===================================================================================== * * Filename: sort.h * * Description: template func of rand & sort alg * * Ver原创 2012-04-15 20:08:44 · 683 阅读 · 0 评论 -
常用数据结构之基于数组的循环队列
队列是一种FIFO的存取方式,用数组来存储普通的队列时,一方面可能存储空间不够,另一方面容易出现“假溢出”。基于数组的循环队列避免不了第一个问题,但可以很好的解决第二个问题。下面是循环队列的结构图: 如图所示队空时rear=front,对满时rear在front的后面。顺序结构循环队列没有解决存储空间溢出的问题,在rear大于front时原创 2012-03-15 00:44:25 · 1392 阅读 · 0 评论 -
常用数据结构之顺序结构List实现
用C++的模板类写了个普通的List类,顺序结构存储的。留个备份。(模板类在G++中只能将声明与定义放在头文件里,C++标准也是这么说的) 基于数组实现的列表,就是一数组的封装,其插入和删除的时间复杂度是O(n)。后面还有一个简单的调用例子/* * ================================================================原创 2012-03-10 16:36:00 · 619 阅读 · 0 评论 -
常用数据结构之linklist链式线性表
此数据结构的ADT就不说了,用链式实现线性表。实现的版本中包含一个head节点,用于指向线性表。 链表的长度包括a1~an。下面是用C++模板类实现的一个链表方式存储的线性表linklist/* * ================================================================================原创 2012-03-14 23:33:25 · 1947 阅读 · 0 评论 -
常用数据结构之链式存储的栈
链式存储的栈用链表的第一个节点作为栈顶,压栈和出栈都是通过对链表的头进行添加删除来实现的。 下面是链式存储结构栈的示意图: 用C++模板类实现的代码如下:/* * ===============================================================================原创 2012-03-15 00:20:39 · 589 阅读 · 0 评论 -
常用数据结构之顺序存储的栈
栈是一种LIFO的数据结构,支持从栈顶进行数据的压入(入栈)和弹出(出栈),可应用于将递归算法变成非递归,逆波兰后缀表达式等等。 画了张简单的结构图,如下所示: 用C++模板类实现的代码如下所示:/* * ======================================================================原创 2012-03-14 23:53:56 · 527 阅读 · 0 评论 -
常用数据结构之链式存储二叉树
树:是n(n>=0)个节点的有限集合。有且仅有一个特定的根节点。每个节点的子节点的个数称为节点的度,树的度是树内各个节点度的最大值。除了根节点,每个节点都有其双亲,同一双亲的节点称为兄弟节点,子节点位于其双亲节点的下一层,其中根节点为第一层。树中节点的最大层次为树的深度或高度。树中各子树次序不可换的称为有序树,否则为无序树。 树的三种表示法: 1、双亲表示法。既每个节点中,原创 2012-03-17 18:59:06 · 1496 阅读 · 3 评论 -
常用数据结构之链式存储队列
与顺序存储结构的队列不同,链式存储可以自由的扩展存储个数。设计时一般使用一个头节点和尾节点。头节点用于入队,尾节点用于出队。 其结构图如下所示: 用C++模板类实现的代码如下:/* * ====================================================================================原创 2012-03-15 00:58:44 · 559 阅读 · 0 评论 -
常用数据结构与算法之查找算法
查找算法/* * ===================================================================================== * * Filename: search.h * * Description: template function of search algo * * V原创 2012-04-15 20:10:48 · 738 阅读 · 0 评论