![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
li2818
这个作者很懒,什么都没留下…
展开
-
《数据结构实战》中缀表达式转后缀表达式----栈的应用
栈的使用:该代码是将中缀表达式转为后缀表达式,并计算后缀表达式。此只支持简单的整形数字原创 2017-05-23 18:30:39 · 1981 阅读 · 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 · 2139 阅读 · 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 · 2136 阅读 · 0 评论 -
《数据结构实战》------------------------ 一个二叉堆的实现
该代码是一个二叉堆的实现,堆排序。#ifndef __CBINARYHEAP__H#define __CBINARYHEAP__H#include #include // 小根堆的实现// 没有值的节点填充为-9999class CBinaryHeap{public: CBinaryHeap(int nSize); // 初始大小 ~CBinaryHeap();pu原创 2017-06-06 21:03:09 · 1742 阅读 · 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 · 449 阅读 · 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 · 2910 阅读 · 0 评论 -
《数据结构实战》创建一颗平衡二叉树
平衡二叉树是一种防止搜索二叉树退化成链表的树,平衡二叉树的左右子树的高度相差不超过1,因此在插入及删除时有必要重新旋转树,以达到是一颗平衡树。为简单起见,仅使用int型数据,并且在有相同节点时,更新nCount的值。代码如下:原创 2017-05-26 16:45:08 · 1806 阅读 · 0 评论 -
《数据结构实战》将后缀表达式变成表达式树------二叉树的应用
编译原理中对于表达式的管理,前面已经有如何将中缀表达式转为后缀表达式算法了,原理同计算后缀表达式同理,为简单起见,操作符都是简单的二元表达式操作符。因此遇到操作数就形成一个叶子节点,并压栈,遇到操作符,则从栈中取两个节点,形成一颗新的树,并进行压栈。最后从栈中取出的为最终的表达式树。代码如下:原创 2017-05-25 15:28:50 · 3044 阅读 · 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 · 2549 阅读 · 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 · 206 阅读 · 0 评论