
数据结构
li2818
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《数据结构实战》中缀表达式转后缀表达式----栈的应用
栈的使用:该代码是将中缀表达式转为后缀表达式,并计算后缀表达式。此只支持简单的整形数字原创 2017-05-23 18:30:39 · 2022 阅读 · 4 评论 -
《数据结构实战》------------------------------------实现Dijkstra算法
下面该代码是对dijkstra算法的实现: #ifndef __CDIJKSTRA__H #define __CDIJKSTRA__H #include #include #include //dijkstra 算法 仅针无负权有向图 const int NERVER_ATTACH = 9999; struct AdjacencyNode // 邻接点 含加权 { struct原创 2017-06-07 19:41:25 · 2178 阅读 · 0 评论 -
《数据结构实战》-------------------------------------------图论 无加权最短路径算法
该代码是用于计算无加权的最短路径算法: #ifndef __CDIRECTEDGRAPH__H #define __CDIRECTEDGRAPH__H #include #include // 邻接表表示有向图 拓扑排序 无权最短路径 const int NERVER_ATTACH = 9999; struct VertexNode // 顶点 { std::string cName原创 2017-06-06 21:09:34 · 2188 阅读 · 0 评论 -
《数据结构实战》------------------------ 一个二叉堆的实现
该代码是一个二叉堆的实现,堆排序。 #ifndef __CBINARYHEAP__H #define __CBINARYHEAP__H #include #include // 小根堆的实现 // 没有值的节点填充为-9999 class CBinaryHeap { public: CBinaryHeap(int nSize); // 初始大小 ~CBinaryHeap(); pu原创 2017-06-06 21:03:09 · 1784 阅读 · 0 评论 -
《数据结构实战》------------------------------------------------------ 霍夫曼算法的实现
霍夫曼算法的实现。 #ifndef __CHUFFMANCODE__H #define __CHUFFMANCODE__H #include #include #include #include //哈夫曼编码 struct TreeNode { std::string strName; int nFrequence; // 出现的频率 int原创 2017-06-14 20:24:25 · 512 阅读 · 0 评论 -
一个好的散列函数
通常对hash表的key的计算都是通过字符串来的,因此需要一个好的散列函数,在数据结构与算法分析-c++描述该书中,提供了一个好的散列函数,如下: int hash(const string& key, int tablesize) { int hashval = 0; for (int i = 0; i < key.length(); i++) hashval翻译 2017-05-27 11:27:10 · 2973 阅读 · 0 评论 -
《数据结构实战》创建一颗平衡二叉树
平衡二叉树是一种防止搜索二叉树退化成链表的树,平衡二叉树的左右子树的高度相差不超过1,因此在插入及删除时有必要重新旋转树,以达到是一颗平衡树。为简单起见,仅使用int型数据,并且在有相同节点时,更新nCount的值。代码如下:原创 2017-05-26 16:45:08 · 1857 阅读 · 0 评论 -
《数据结构实战》将后缀表达式变成表达式树------二叉树的应用
编译原理中对于表达式的管理,前面已经有如何将中缀表达式转为后缀表达式算法了,原理同计算后缀表达式同理,为简单起见,操作符都是简单的二元表达式操作符。因此遇到操作数就形成一个叶子节点,并压栈,遇到操作符,则从栈中取两个节点,形成一颗新的树,并进行压栈。最后从栈中取出的为最终的表达式树。 代码如下:原创 2017-05-25 15:28:50 · 3120 阅读 · 0 评论 -
《数据结构实战》模拟文件系统目录组织------树的应用
简单模拟文件系统的目录组织,多节点树的应用,为求简单,没有进行错误处理。代码如下:#ifndef __CFILEDIRECTORY__H #define __CFILEDIRECTORY__H #include #include // 文件系统目录结构 const int MAX_LEN = 128; struct TreeNode { char szName[MAX_LEN]; //原创 2017-05-24 19:58:56 · 2621 阅读 · 0 评论 -
快速排序的实现
#include #include #include void quicksort(std::vector& vec, int nbegin, int nend) { if (nbegin >= nend) return; int nPos = (nbegin + nend) / 2; int nPosV = vec[nPos]; std::vector l原创 2017-12-12 15:05:01 · 247 阅读 · 0 评论