![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构的学习
陈城南
这个作者很懒,什么都没留下…
展开
-
【 数据结构 】哈夫曼树与哈夫曼编码
定义:按照字符的频率(频数)构建最优树,即把频率小的树尽可能放在深层节点,频率大的树放在浅层节点,从而使得所有叶子节点的带权路径和最小。这样做的好处是依照路径重新对叶子节点的字符进行01编码,从而使高频率的字符编码短,低频率字符的编码长,这种不定长的编码可以使得最终文本长度减小,实现数据压缩; // 树节点数据结构 typedef struct tnode{ char c; ...原创 2020-02-24 21:54:45 · 457 阅读 · 0 评论 -
【 数据结构 】字典树的构建及搜索代码实现
#include <stdio.h> #include <stdlib.h> #define Alphabet_SIZE 26 // 数据结构 typedef struct tnode { int flag; // 是否为 word 节点 / word 的数量 struct tnode *next[Alphabet_SIZE]; // 子节点 }t...原创 2020-02-24 21:13:53 · 247 阅读 · 0 评论 -
栈与树——2018/01/05总结
2018/01/05 自学数据结构知识总结 内存本是不存在任何结构,所有的内存都只是存储数据的单元,而栈、队列等都是人为的抽象出来的为了解决各种问题而构造的具有基于某种存储特性的数据单元。 栈:具有“先进后出”特性,规定这种先进后出特性的存储结构叫做“栈”,对于某一存储单元,假设它是一个箱子,六个面只有一个面是开放的,其他面都是封闭的,那么我们在对这个箱子进行操作时只能利用这唯一的开放的一个面原创 2018-01-05 20:24:39 · 636 阅读 · 0 评论 -
栈的应用:简单加减乘除四则运算——2018/01/06思考
今天早上和下午完成对昨天栈与树学习的巩固,复习了二叉搜索树的查找、插入、删除,重新回顾了堆的概念,复习了堆的插入、删除、建立和堆的应用——堆排序,在昨天学习了栈之后,尤其是在尝试利用栈去实现三种遍历方式的时候,就特别想看看栈的具体应用,又隐隐约约记得四则运算的实现与栈有所关联,所以今天想通过对四则运算的实现来加深自己对栈的理解。 简单四则运算的基本思路: 1.将输入的中缀表达式转化为后缀表原创 2018-01-06 18:54:46 · 1443 阅读 · 0 评论 -
栈与递归——2018/01/07思考
栈与递归 继昨天写完栈的简单应用——四则运算之后,我对栈的兴趣又变浓了,尤其是昨天在看到栈与递归这个问题时,心中更是一咯噔,我们都知道递归对内存的耗费是比较大的,而计算机在函数调用过程中与栈相似,因此递归是可以通过栈来实现的,从而提高效率(当然循环有时候也是可以实现的,可是我就想用栈,你管我~),所以在我下午吃了一下午鸡(跳了一下午伞)之后,“良心备受谴责”,特意晚上重回图书馆。回到图书馆后本来原创 2018-01-07 18:08:17 · 313 阅读 · 0 评论