数据结构与算法
linukey
这个作者很懒,什么都没留下…
展开
-
排序算法总结
冒泡排序 选择排序 插入排序 归并排序 希尔排序 堆排序 快速排序 计数排序 基数排序冒泡排序/** * 冒泡排序 * 最坏时间复杂度:O(n^2) * 平均时间复杂度:O(n^2) * 空间复杂度:O(1) * 算法稳定度:稳定 */ template<class T> void bubbleSort(T* start, T* end){ if(start >= end) re原创 2017-03-11 21:52:35 · 259 阅读 · 0 评论 -
字符串匹配算法
字符串匹配算法字符串匹配算法 朴素字符串匹配算法 Rabin-Karp算法 有限自动机算法 KMP算法 笔面高频题 单词间的逆序调整 前n字符后移 两字字符按照字典序最小拼接 判断两个字符串是否互为旋转词朴素字符串匹配算法//朴素字符串匹配算法(输出偏移量) /* * 朴素字符串匹配算法是通过一个循环找到所有有效偏移,该循环对n-m+1可能的s值进行检测, * n是要在上面进行查找的对象大小,m原创 2017-03-05 19:58:29 · 1586 阅读 · 0 评论 -
C++中char* const char* string 之间的转换复习
//C++中char* const char* string 之间的转换复习 #include #include using namespace std; int main() { //string 转 const char* string str = "linukey"; const char* s = str.c_str(); //const char* 转原创 2015-04-26 11:22:34 · 465 阅读 · 0 评论 -
优先队列C++数组实现
//优先队列 #include using namespace std; class Queue { private: struct Node //创建一个节点信息,包括数据和优先级 { int data; int level; Node() :data(), level(-1){} Node(int data_, int level_) :data(data_),原创 2015-05-07 16:56:52 · 2115 阅读 · 0 评论 -
二叉树中缀表达式到后缀表达式的转换
规则: 当读到一个操作数时,立即把它放到输出中。当读到操作符时不立即输出,从而必须先存在某个地方。正确的做法是将已经见到过的操作符放进栈中而不是放到输出中。当遇到左括号时我们也要将其推入栈中。如果遇到一个右括号,我们就弹出栈中的符号并输出,直到遇到对应的左括号,并且这个左括号只弹出,不输出。 存入栈中的操作符的规则:优先级必须保持从上到下为高到低。遇到一个操作符时,我们从栈中弹出元素,直到发现原创 2015-05-09 23:00:06 · 3053 阅读 · 1 评论 -
AVL树C++实现
//AVL树 #include #include using namespace std; class avl_tree { private: struct tree { int data; tree* L; tree* R; int height; tree(int data_) :data(data_), L(0), R(0), height(0){}原创 2015-05-14 11:21:08 · 651 阅读 · 0 评论 -
哈希表分离链接发解决冲突
#include #include using namespace std; class HashTable { private: struct Node { int data; Node* pnext; Node(int data_) :data(data_), pnext(0){} Node() :pnext(0){} }; Node** TheLis原创 2015-06-09 19:47:11 · 568 阅读 · 0 评论 -
哈希表开放寻址法之线性探测法解决冲突问题
#include #include using namespace std; class HashTable { private: enum judge{Empty, Value}; struct Node { int data; enum judge j; Node() :j(Empty){} }; Node* TheNodes; int TableSize; pub原创 2015-06-09 20:35:49 · 2203 阅读 · 0 评论 -
C++动态数组简单模拟二叉堆
//C++动态数组简单模拟二叉堆 #include using namespace std; class BinaryHeap { private: int cap; //数组最大容量 int size; //当前元素个数 int* datas; //数组首地址 public: explicit BinaryHeap(int cap_) :cap(cap_), size(0) {原创 2015-06-11 10:19:01 · 794 阅读 · 0 评论 -
二叉树操作总结
#include<iostream> #include<stack> #include<queue> #include<string> #include<vector> using namespace std;template<class T> struct Node{ T value; Node* pLeft; Node* pRight; bool isFirst;原创 2017-03-05 20:05:53 · 426 阅读 · 0 评论