
数据结构
qq_36795903
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表实现堆栈+堆栈应用:括号匹配
当时数据结构就没有学好…不管怎么说加油吧 代码: #include<iostream> using namespace std; /*链表实现堆栈+堆栈应用:括号匹配*/ template<class T> class SNode { private: T data; SNode * next; public: SNode(T data) { this->...原创 2019-05-04 15:14:36 · 252 阅读 · 0 评论 -
数组实现队列
代码: #include<iostream> using namespace std; template<class T> class Queue { private: int front;//队首元素所在数组元素下标 int rear;//新元素要插入的位置 int count;//当前队列中的元素个数 T * Qarray;//存放队列的数组 int max...原创 2019-05-04 15:53:21 · 178 阅读 · 0 评论 -
模式匹配
朴素的模式匹配算法: #include<iostream> #include<string> using namespace std; #pragma warning(disable : 4996) int stringMathching(string S, string P); int main() { string S = "abcfsxyzabh"; strin...原创 2019-05-04 18:48:59 · 126 阅读 · 0 评论 -
C++二叉树实现
二叉树节点类: /*二叉树结点类BinTreeNode声明*/ template<class T> class BinTreeNode { private: BinTreeNode * left, * right;//指向左右结点的指针 T data;//数据域 public: BinTreeNode(const T& item, BinTreeNode * left =...原创 2019-05-06 17:53:29 · 4473 阅读 · 0 评论 -
树、森林、二叉树的转换
1. 树=>二叉树 定义树中结点的第一个孩子结点为大孩子结点,右边紧邻的第一个兄弟节点为大兄弟结点。(从左到右排序,左大右小) 与树对应的二叉树的左孩子结点是它原树中的大孩子结点,右孩子结点是它在原树中的大兄弟结点。 2. 森林=>二叉树 把森林看成一棵树,森林中所有树的根结点看作彼此的兄弟结点。 然后按照树转化为二叉树的方法进行转换即可。 3. 二叉树=>树 如果二叉树根结点的...原创 2019-05-06 19:42:34 · 507 阅读 · 0 评论 -
C++实现树
由于树和二叉树可以相互转换,所以树可采用和二叉树相同的方式构造(left变为firstChild,right变为nextBrother),只是遍历方式(中的层次遍历)不同。 树的层次遍历思想: 利用一个辅助队列,初始只有一个根结点。 当一个结点出队时,其大孩子结点入队,大孩子结点的所有兄弟结点也依次入队。 代码: template<class T> void Tree<T>...原创 2019-05-06 19:45:04 · 850 阅读 · 0 评论 -
C++实现哈夫曼树编码解码
代码: #pragma once #include<iostream> #include<stack> using namespace std; #define m 20 stack<int> s; /*哈夫曼树结点类HuffmanNode声明*/ template<class T> class HuffmanNode { private: Hu...原创 2019-05-07 10:39:14 · 1327 阅读 · 1 评论