
数据结构与算法
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 · 286 阅读 · 0 评论 -
字符串匹配算法
字符串匹配算法字符串匹配算法朴素字符串匹配算法Rabin-Karp算法有限自动机算法KMP算法笔面高频题单词间的逆序调整前n字符后移两字字符按照字典序最小拼接判断两个字符串是否互为旋转词朴素字符串匹配算法//朴素字符串匹配算法(输出偏移量)/* * 朴素字符串匹配算法是通过一个循环找到所有有效偏移,该循环对n-m+1可能的s值进行检测, * n是要在上面进行查找的对象大小,m原创 2017-03-05 19:58:29 · 1619 阅读 · 0 评论 -
C++中char* const char* string 之间的转换复习
//C++中char* const char* string 之间的转换复习#include#includeusing namespace std;int main(){//string 转 const char*string str = "linukey";const char* s = str.c_str();//const char* 转原创 2015-04-26 11:22:34 · 483 阅读 · 0 评论 -
优先队列C++数组实现
//优先队列#includeusing 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 · 2162 阅读 · 0 评论 -
二叉树中缀表达式到后缀表达式的转换
规则:当读到一个操作数时,立即把它放到输出中。当读到操作符时不立即输出,从而必须先存在某个地方。正确的做法是将已经见到过的操作符放进栈中而不是放到输出中。当遇到左括号时我们也要将其推入栈中。如果遇到一个右括号,我们就弹出栈中的符号并输出,直到遇到对应的左括号,并且这个左括号只弹出,不输出。存入栈中的操作符的规则:优先级必须保持从上到下为高到低。遇到一个操作符时,我们从栈中弹出元素,直到发现原创 2015-05-09 23:00:06 · 3100 阅读 · 1 评论 -
AVL树C++实现
//AVL树#include#includeusing 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 · 676 阅读 · 0 评论 -
哈希表分离链接发解决冲突
#include#includeusing 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 · 594 阅读 · 0 评论 -
哈希表开放寻址法之线性探测法解决冲突问题
#include#includeusing 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 · 2235 阅读 · 0 评论 -
C++动态数组简单模拟二叉堆
//C++动态数组简单模拟二叉堆#includeusing 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 · 824 阅读 · 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 · 453 阅读 · 0 评论