原创 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向右移動一個字符的位置,再依次進行比較。 該算法最壞情況下要進