原创 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