原创 C語言提高班學習筆記 lesson5 編譯

C語言如何完成編譯 編譯器會將代碼進行預處理,預處理會將註釋,#define , 條件編譯指令,#include  展開得到真實的代碼。  編譯會將代碼的詞法語法進行解析,完成後會生成彙編代碼。彙編器將所有的彙編代碼翻譯成機器碼。 使用

原创 C++學習筆記 lesson6 重載String類

定義MyString類  MyString.h #ifndef _MYSTRING_H_ #define _MYSTRING_H_ namespace PoEdu { class MyString { public: M

原创 數據結構與算法筆記 lesson 19 二叉樹

二叉樹 二叉樹(Binary Tree)是 n(n>=0)個結點的有限集合,該集合或者爲空集(空二叉樹),或者由一個根結點和兩課互不相交的、分別稱爲根結點和左子樹和右子樹的二叉樹組成。 每個結點最多有兩棵子樹,所以二叉樹中不存在度大

原创 數據結構與算法筆記 lesson 13 隊列

隊列 是隻允許在一端繼續插入操作,而在另一端進行刪除操作的線性表。 是一種先進先出(FIFO)的線性表。   輸入緩存區接收鍵盤的輸入就是按隊列的形式輸入和輸出的 棧一般用順序表來實現,隊列常用鏈來實現 typedef s

原创 C++學習筆記 lesson5 運算符重載

 模擬所有的int #include<iostream> //模擬所有的int class Integer { public: Integer(int num = 0) :_num(num) {} // & 取地址運算符 空

原创 C++學習筆記 lesson11 MyString類講解

實現String類 #ifndef _MYSTRING_H_ #define _MYSTRING_H_ #include<limits> #include<cstring> namespace PoEdu { class MyS

原创 effect C++ 令operator = 返回一個reference to *this

賦值 連鎖形式: int x,y,z; x=y=z=15;賦值採用右結合律 x=(y=(z=15));爲了實現”連鎖賦值“,賦值操作符必須返回一個reference指向操作符的左側實參。class Widget{ public:

原创 數據結構與算法筆記 lesson 15 遞歸

 遞歸 效率比較低,萬不得已不用遞歸,用迭代(循環) 文件夾索引操作 迭代使用的是循環結構, 遞歸使用的選擇結構 使用遞歸能使程序的結構更清晰,更簡潔,更容易讓人理解。 大量的遞歸調用會建立函數的副本,會消耗大量的時間和內存 例

原创 數據結構與算法筆記 lesson 14 循環隊列

循環隊列 隊列的順序存儲結構 隊頭在下標爲0 的位置,所以出隊列的時間複雜度爲O(n) 循環隊列 容量是固定的,並且它的隊頭和隊尾指針都可以隨着元素入出隊列而發生改變,這樣循環隊列邏輯上就好像是一個環形存儲空間 讓front 或 r

原创 數據結構與算法筆記 lesson 12 中綴表達式轉後綴表達式

中綴表達式 -(1-2)*(4+5) 後綴表達式 - 1 2 - 4 5 +  * 1+(2-3)*4+10/5 第一個輸入是數字1 ,數字在後綴表達式中都是直接輸出,接着是符號“+” ,入棧 第三個字符是“(”,依然是符號,

原创 數據結構與算法筆記 lesson 21 線索二叉樹

爲什麼使用線索二叉樹 浪費了10*4個字節 使用中序遍歷 H D I B E A F C G 可以利用“^”記錄該結點的前去後繼,節省指針浪費的空間。 如果是這種情況 需要將定義好的結構進行擴容 lchild , ltag ,

原创 數據結構與算法筆記 lesson 18 樹

樹  樹 是n(n>=0)個結點的有限集。當n=0時成爲空樹。在任意一顆非空樹中: 有且僅有一個特定的稱爲根的結點; 當n>1時,其餘結點可分爲m(m>0)個互不相交的有限集T1、T2、.....Tm,其中每一個集合本身又是一顆樹,並且

原创 C++學習筆記 lesson4 構造函數2

#include<iostream> class ClassDemo { public: ClassDemo() { std::cout << "ClassDemo()...被調用" << _num << std::endl

原创 C++學習筆記 lesson7 static

static 與類 不會被反覆初始化 將變量的作用域限定在某一個源文件中static 與類 將變量的作用域限定在某一個源文件中 class Demo { public: static int num;//不屬於對象的,屬於類的,所

原创 數據結構與算法筆記 lesson 17 字符串匹配算法

BF算法 核心思想: 有兩個字符串S和T , 長度爲N和M.首先S[1]和T[1]比較,若相等,則比較S[2]和T[2] ,一直到T[M]爲止;若S[1]和T[1]不等,則T向右移動一個字符的位置,再依次進行比較。 該算法最壞情況下要進