数据结构
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 · 218 阅读 · 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 · 148 阅读 · 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 · 108 阅读 · 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 · 4423 阅读 · 0 评论 -
树、森林、二叉树的转换
1. 树=>二叉树定义树中结点的第一个孩子结点为大孩子结点,右边紧邻的第一个兄弟节点为大兄弟结点。(从左到右排序,左大右小)与树对应的二叉树的左孩子结点是它原树中的大孩子结点,右孩子结点是它在原树中的大兄弟结点。2. 森林=>二叉树把森林看成一棵树,森林中所有树的根结点看作彼此的兄弟结点。然后按照树转化为二叉树的方法进行转换即可。3. 二叉树=>树如果二叉树根结点的...原创 2019-05-06 19:42:34 · 449 阅读 · 0 评论 -
C++实现树
由于树和二叉树可以相互转换,所以树可采用和二叉树相同的方式构造(left变为firstChild,right变为nextBrother),只是遍历方式(中的层次遍历)不同。树的层次遍历思想:利用一个辅助队列,初始只有一个根结点。当一个结点出队时,其大孩子结点入队,大孩子结点的所有兄弟结点也依次入队。代码:template<class T>void Tree<T>...原创 2019-05-06 19:45:04 · 815 阅读 · 0 评论 -
C++实现哈夫曼树编码解码
代码:#pragma once#include<iostream>#include<stack>using namespace std;#define m 20stack<int> s;/*哈夫曼树结点类HuffmanNode声明*/template<class T>class HuffmanNode {private: Hu...原创 2019-05-07 10:39:14 · 1288 阅读 · 1 评论