C++深入簡出之Stack
SingleList :單鏈表
CreateList()
CreateNode()
InsertHead()
InsertTail()
InsertAppoin();
DeleteHead();
DeleteTail();
DeleteAppo();
IsEmpty();
PrintList();
DoubleList : 雙向鏈表
Queue+Stack: 隊列和棧
-------------------------------
深入簡出
FILO: 先進後出(後來居上)
NO.1 STL---stack
大牛寫: 標準模板類庫
1.1 模板
1.2 類庫
list,vector(向量),queue,deque,stack
.set(集合),map(映射) x=y
Multimap,multiset;
容器
迭代器:iterator
算法:Algorithm
仿函數:類模仿函數的行為
NO.2 ArrayStack -數組棧: 數組實現
2.1 C++引用
2.2 類和對象
2.3 ADT過程
Abstract Data Type
2.4 析構問題
2.5 數組內存擴增
2.6 Algorithm 算法 :copy
NO.3 ListStack-鏈式棧: 鏈表實現
3.1 鏈表在實際應用中怎麼使用
3.2 無表頭鏈表的操作
-------------------------------
Hash : 哈希
Heap:堆
Tree:二叉樹
Graph:圖
DFS: 深度優先-----stack變形算法
迷宮求解問題
BFS: 廣度優先
模板源碼::::
#include <iostream>
#include <string>
/*
模板:把類型當作一種參數來處理一種方式
*/
using namespace std;
template <typename>
T Max(T a, T b)
{
return a > b ? a : b;
}
//命名空間
namespace MM
{
int mm = 1;
int a = 1;
int b = 3;
}
using namespace MM;
template <typename>
class A
{
public:
T a;
};
int main()
{
//實例化,就是給模板傳入類型
cout<("abc", "bca")<<endl>
cout <(1, 2) << endl;
//作用域分辨符 ::
cout <
cout << a << endl;
A aa;
aa.a = 1;
system("pause");//防止閃屏
return 0;
}
/<endl>