原创 AVL樹(算法導論)
#include <iostream> #include <algorithm> using namespace std; struct node // 節點 { node *left; node *right; node *pa
原创 vector (仿sgi stl)
// 參考侯捷大大的《STL源碼剖析》嘗試自己寫一個vector調高下代碼水平 // VS2013下編譯 基本模仿sgi stl // by : Ricardo #include <iostream> #include
原创 hash表 拉鍊法 仿sgi stl 非模板簡單實現
#include <iostream> #include <algorithm> #include <vector> using namespace std; typedef struct hashtable_node // 節點 {
原创 priority_queue (仿sgi stl) 純手打 累死TMD
#include <iostream> #include <vector> //#include <iterator> #include <xutility> // 內含 _Val_type _Dist_type #include <f
原创 kmp
#include <iostream> #include <string> using namespace std; int Brute_force_string_matching(string &s, string &p) // 字符
原创 二分法及其拓展
//二分查找及其擴展實現 #include <iostream> #include <vector> #include <random> #include <algorithm> using namespace std; // 二分
原创 stack(仿sgi stl)
#include <iostream> #include <deque> using namespace std; template <typename T, typename Sequence = deque<T>> class st
原创 queue(仿sgi stl)
#include <iostream> #include <deque> using namespace std; template <typename T, typename Sequence = deque<T>> class qu
原创 二叉搜索樹(算法導論)
#include <iostream> using namespace std; struct tree_node // 樹節點 { tree_node(int x) : data(x), lchild(nullptr), rchil
原创 template template parameter
#include <stdexcept> #include <iostream> #include <memory> #include <vector> #include <string> #include <deque> templa
原创 雜七雜八
#include <iostream> using namespace std; class TestClass { friend ostream& operator<<(ostream&, TestClass&); public:
原创 單例
#include <iostream> using namespace std; template <typename T> class Singleton { public: int get_data(); static Sing
原创 紅黑樹(算法導論)
測試代碼所用的例子爲算導第三版p179圖13-4 #include <iostream> using namespace std; const bool BLACK = 0; // 黑色 const bool RED = 1; //
原创 list (仿sgi stl)
#include <iostream> #include <iterator> #include <memory> #include <algorithm> using namespace std; template <typename
原创 weak_ptr解決循環引用問題demo
#include <iostream> #include <memory> class Woman; class Man{ private: std::weak_ptr<Woman> _wife; //std::shared