原创 對稱矩陣及對稱矩陣的壓縮存儲

設一個N*N的方陣A,A中任意元素A[i][j],當且僅當A[i][j] == A[j][i](0 <= i <= N-1 && 0 <= j <= N-1),則矩陣A是對稱矩陣。以矩陣的對角線爲分隔,分爲上三角和下三角。如上圖,對稱矩陣

原创 程序在內存中的分佈

代碼段(.text),也稱文本段(Text Segment),存放着程序的機器碼和只讀數據,可執行指令就是從這裏取得的。如果可能,系統會安排好相同程序的多個運行實體共享這些實例代碼。這個段在內存中一般被標記爲只讀,任何對該區的寫操作都會導致

原创 程序的編譯流程

程序的基本流程如圖:1. 預處理預處理相當於根據預處理指令組裝新的C/C++程序。經過預處理,會產生一個沒有宏定義,沒有條件編譯指令,沒有特殊符號的輸出文件,這個文件的含義同原本的文件無異,只是內容上有所不同。讀取C/C++源程序,對其中的

原创 廣義表

廣義表是非線性結構,其定義是遞歸的。以下給出幾種簡單的廣義表模型:由上圖我們可以看到,廣義表的節點類型無非head、value、sub三種,這裏設置枚舉類型,利用枚舉變量來記錄每個節點的類型:enum  Type { HEAD,   //

原创 菲波那切數列

//遞歸寫法 long long FibonacciSeq(int n) { if (n < 2) { return n; } return FibonacciSeq(n - 1) + FibonacciSeq(n - 2);

原创 Maze迷宮問題(最優解)

迷宮地形我們可以通過讀文件的形式,通過已知入口逐個遍歷座標尋找通路。文件如圖:每個座標的位置用結構體來記錄:struct Pos    //位置座標 {    int  _row;    int _col; };定義行列範圍#define 

原创 模板實現動態順序表

定義類模板時,成員函數可以定義在類內部,也可以在類模板外定義。    此時成員函數中若有類型參數存在,則需注意:                   (1)要在成員函數定義之前進行模板聲明。                   (2)在成員

原创 new的越界訪問

今天敲代碼的時候發現了一個BUG和大家分享一下,希望大家下次不要犯和我一樣的錯誤。如果犯了和我一樣的錯,也能知道自己錯在哪裏!   <(^-^)>函數如下:(斐波那契數列的實現)long long FibonacciSeq( int n)