数据结构
文章平均质量分 67
yk_ee
https://github.com/yyykk
展开
-
二叉树实现哈夫曼码
最近完成一个数据结构的作业,哈夫曼编码,实现了1.查看字母的哈夫曼码2.哈夫曼码转文字3.文字转哈夫曼码这几个功能哈夫曼码主要用于压缩编码,将字符用二进制(0,1)编码代替,能过使出现概率大的字母的二进制码短,而我们会根据字符的出现概率给各个字符赋一个“权重”,再根据权重构造一个二叉树核心便是如何构造这个哈夫曼二叉树那么二叉树的结原创 2016-03-31 00:07:22 · 1411 阅读 · 1 评论 -
shannon编码
香农编码原理以及原创 2016-12-07 10:55:18 · 2856 阅读 · 0 评论 -
基于状态机的四则运算计算器
基于状态机的最简单的四则运算计算器原创 2017-01-06 00:05:12 · 3324 阅读 · 0 评论 -
Python实现二叉树存储结构的堆排序
既然用Python实现了二叉树,当然要写点东西练练手。网络上堆排序的教程很多,但是却几乎都是以数组存储的数,直接以下标访问元素,当然这样是完全没有问题的,实现简单,访问速度快,也容易理解。但是以练手的角度来看,我还是写了一个二叉树存储结构的堆排序其中最难的问题就是交换二叉树中两个节点。因为一个节点最多与三个节点相连,那么两个节点互换,就需要考虑到5个节点之间的关系,也需要判断是左右原创 2017-03-20 09:29:20 · 850 阅读 · 0 评论 -
Python实现一个二叉树类
Python实现二叉树类原创 2017-03-12 21:02:52 · 5824 阅读 · 0 评论 -
二叉树的非递归先序、中序和后序遍历
这个学期一直在忙着准备面试,复习,都没有看新的书,也很久没有写Blog了。 之前写过二叉树的遍历,但是现在回去看实在是不忍直视,不仅写的复杂,而且还不一定正确。现在把二叉树的三种非递归遍历重写一遍。二叉树的遍历是一个递归的过程,天然具备递归的属性,而非递归遍历的关键是栈的运用。其实任何一种递归算法都有一个对应的非递归算法。先放上二叉树类的定义class Tree {public: T原创 2017-07-01 14:30:39 · 557 阅读 · 1 评论 -
严蔚敏迪杰斯特拉算法改进
前两个月在实习,刚回来又忙着找工作的事情,又好久没写博客了。想起来好久没碰数据结构了,捡起那本学校的教材–严蔚敏的数据结构,看了看她的迪杰斯特拉算法。书上的代码相当简洁,但是有一个问题是只能找到路径上的点,并没有将其顺序存起来,所以我就对其进行了一丢丢的该进。把代码用C++重写了一遍,在VS 2015上能编译通过#include "iostream"#include "vector"using原创 2017-10-19 20:38:27 · 925 阅读 · 0 评论 -
骰子求和
骰子求和-lintcodehttp://www.lintcode.com/zh-cn/problem/dices-sum/每一次求概率都能利用上一次求得的概率#include "map"#define pmap map<int, double>class Solution {public: /** * @param n an integer * @r...原创 2018-03-05 14:23:10 · 362 阅读 · 0 评论 -
合并两个排序链表 -lintcode
http://www.lintcode.com/zh-cn/problem/merge-two-sorted-lists/合并两个排序链表A,B有很多种方法,其中最简单的就是创建一个空链表C,之后依次将A,B的元素插入C即可。这次我是直接将B中的元素插入A,不需要额外的链表C/** * Definition of singly-linked-list: * class ListNode { ...原创 2018-03-19 15:54:43 · 359 阅读 · 0 评论 -
lintcode-链表求和
http://www.lintcode.com/zh-cn/problem/add-two-numbers/两个链表求和,我们只需要模仿CPU里的加法器,设置一个S位,一个C位进位即可/** * Definition of singly-linked-list: * class ListNode { * public: * int val; * ListNode *nex...原创 2018-03-30 23:07:27 · 337 阅读 · 0 评论 -
fano编码的递归算法
fano编码的递归算法原创 2016-12-01 20:36:38 · 2113 阅读 · 0 评论 -
邻接表存储图的深度优先、广度优先遍历非递归算法
邻接表存储图的深度、广度优先非递归遍历原创 2016-06-17 16:41:02 · 7493 阅读 · 1 评论 -
快速排序的递归算法
快速排序的实现原创 2016-05-13 23:57:58 · 652 阅读 · 0 评论 -
链表的基本操作
单向链表的基本操作——建立,倒序,插入,输出原创 2016-04-12 22:38:15 · 501 阅读 · 0 评论 -
建立,删除循环链表中的一个元素
循环链表的基本操作原创 2016-04-12 22:42:49 · 1539 阅读 · 0 评论 -
删除双向链表的头
双向链表原创 2016-04-12 22:47:37 · 788 阅读 · 0 评论 -
二叉树非递归先序建立与后序遍历
二叉树的先序建立,后序遍历原创 2016-04-11 09:11:27 · 452 阅读 · 0 评论 -
数据结构_KMP
数据结构KMP算法的实现原创 2016-03-27 19:35:55 · 563 阅读 · 0 评论 -
广义表深度递归算法的问题
关于广义表深度递归算法的一个问题原创 2016-03-28 09:06:51 · 3809 阅读 · 0 评论 -
利用链表实现多项式求值
链表实现两个多项式之间的加减乘除原创 2016-04-16 23:34:51 · 1078 阅读 · 0 评论 -
判断两个顶点之间是否联通,是否有长度为K的路径
图的遍历原创 2016-05-12 23:34:38 · 1755 阅读 · 1 评论 -
实现一个队列类
自己实现一个简陋的队列的STL原创 2016-05-02 20:28:28 · 1285 阅读 · 0 评论 -
不同的路径-lintcode
http://www.lintcode.com/zh-cn/problem/unique-paths/有一个机器人的位于一个 m × n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。问有多少条不同的路径?样例给出 m = 3 和 n = 3, 返回 6.给出 m = 4 和 n = 5, 返回 35.典型的动态规划问题,画一个表格,表示从左上角出发,到该格子的...原创 2018-04-01 17:42:21 · 257 阅读 · 0 评论