原创 C++筆試的基礎遺忘點

1.不可以重載的操作符:" ::",“.*“,".",“?:” 2.操作符優先級:   no1:  ::   no2: . -> [] () ()構造   no3: ++,--後增   no4:++,--前增 ~位求反,!邏輯非,-負號+

原创 C++產生的臨時對象引用

<span style="font-size:18px;"></span><pre name="code" class="cpp"><span style="font-size:18px;"><span style="color:#ff0

原创 奧數等式與走迷宮Dfs實現

深度優先搜索(Depth First Search,DFS),理解深搜的關鍵在於解決“當下該如何做”。至於“下一步如何做”。通常的方法就是把每一種可能都是嘗試一遍。當前這一步解決後便進入下一步。下一步的解決方法和當前這步的解決方法是完全一

原创 最大子矩陣面積

http://blog.csdn.net/sunmenggmail/article/details/7709004#include<iostream

原创 漢諾塔的簡單實現

一直認爲很簡單的遞歸經典算法,感覺有時轉不過來,特意寫了一個#include<iostream> using namespace std; void

原创 圖的割點與割邊實現

基本思路: 假如我們在dfs時訪問到了u點,此時圖就會被u點分割成爲兩部分。一部分是已經被訪問過的點,另一部分是沒有被訪問過的點。如果u點是割點,那麼剩下的沒有被訪問過的點中至少有一個點在不經過u點的情況下,是無論如何再也回不到已經訪問過

原创 迷宮BFS實現

#include<iostream> using namespace std; struct note { int x; int y; int f; int count; }; int main() { struct note

原创 C++中的重載

平時不怎麼寫重載,有時候會短路記不得,特意寫一個方便以後看#include <iostream> using namespace std; cla

原创 圖的遍歷之BFS廣度優先遍歷C++實現

首先以一個未被訪問過的頂點作爲起始頂點,訪問其所有相鄰的頂點,然後對每個相鄰的頂點,再訪問他們相鄰的未被訪問過的頂點,直到所有頂點都被訪問過,遍歷結束。 廣度優先遍歷更加適用於所有邊的權值相同的情況 #include<iostream>

原创 最短路徑比較

   Floyd Dijkstra Bellman-Ford 隊列優化的Bell. 空間複雜度 O(N^2) O(M) O(M) O(M) 時間複雜度 O(N^3) O((M+N)lo

原创 最小生成樹Kruskal算法實現+快排實現權值排序

要求要最少的邊讓圖連通(任意兩點之間可以互相到達)。要想讓n個頂點的圖連通,那麼至少需要n-1條邊。其實這裏就是求一個圖的最小生成樹 基本思路: 首先按照邊的權值進行排序按照升序,每次從剩餘的邊中選擇權值較小且邊的兩個頂點不在同一個集合內

原创 C++虛函數重載

#include <iostream> #include <string> #include <memory> uing namespace std; #define str(f) f void printLine(string s)

原创 strcpy與memcpy重新實現

#include<iostream> #include<assert.h> using namespace std; //此版本並未考慮到內存重疊的情況 char* strcpy_overwrite1(char*Des,char*Src)

原创 C++基礎知識點遺忘二字符與樹的遍歷節點判斷

1.關於轉義字符    char a='\72'  並不會報錯 7代表的是八進制 \o72 代表冒號:      如果是\92就會出錯 十進制 2.前序和中序遍歷,如何求後序遍歷呢?比如,已知一棵樹的前序遍歷是”GDAFEMHZ”,而中序

原创 奧數等式:暴力窮舉法

奧數等式:暴力窮舉法 abc+def=hig 將數字1~9分別填入,每個數字只能使用一次使得等式成立。例如784+152=936就是一個合理 的組合,請問一共有多少種合理的組合?注意784+152=936和152+784=459是同一種組