原创 第7章 圖

leetcode刷了一大半,數組,鏈表,樹,隊列和棧的題目已經做了好多,感覺比較紮實了。突然發現後面好多關於圖算法的問題,沒辦法,又繼續開始學習“圖”這種數據結構。折騰了一天,把圖的創建,深度優先級遍歷(DFS)和廣度優先級遍歷(

原创 用C++的string::size()和string::length()返回值做比較

樓主今天在自己實現kmp算法的c++代碼時,發現了一個問題。我先把代碼貼上來。 //kmp search #include <iostream> #include <vector> using namespace std; ve

原创 N皇后問題的一般解法--回溯法

先上代碼 #include <iostream> #include <cmath> #include <vector> #include <cstdlib> using namespace std; vector<int> board;

原创 循環緩衝區C++的一種實現

之前去騰訊面試的時候被問到的一道題目:實現一個循環緩衝區(不帶互斥鎖)。仔細一想,其實和循環隊列的思想一模一樣,還是怪自己數據結構沒學好阿(其實我是學通信的,所以最近在惡補)。還是先上代碼 頭文件如下,CircleBuffer.h #if

原创 求二叉樹的每個結點的子孫數量

《數據結構》嚴蔚敏版習題6.55 爲二叉鏈表的結點增加DescNum域,表示該結點的子孫數量。編寫一個算法,求二叉樹的每個結點的子孫數目並存入其DescNum域。 思路: 方案1,利用遞歸,從根節點開始對每個結點都調用一次函

原创 LeetCode: 9. Palindrome Number

求一個整數是否是迴文數。 形如121, 73637等等之類的數都是迴文數。要求空間複雜度爲O(1),這就讓很多想轉換爲字符串再去判斷的同學止步了;有的同學可能想把該整數倒轉之後再去和原數比較是否相等,但是倒轉後的數可能超過有符號

原创 C++編程思想學習筆記---第七章 函數重載與默認參數

第七章 函數重載與默認參數 一、爲什麼要重載函數 1.我們想用同一個函數的調用對不同類型的數據參數進行處理,編譯器知道在聲明函數的時候它的參數是什麼類型。比如我想比較兩個(同類型)數的大小,事先並不知道會是什麼類型的數。我只需要一個函數名

原创 C++編程思想學習筆記---第五章 隱藏實現

第5章 隱藏實現 一、C++的訪問控制符 public 在其後聲明的所有成員可以被所有人訪問。 private 表示除了該類型的創建者和類的內部成員函數之外,任何人都不能訪問。 protected 繼承的結構可以訪問protected成

原创 大小端模式詳解

大小端模式詳解 端模式(Endian)的這個詞出自Jonathan Swift書寫的《格列佛遊記》。這本書根據將雞蛋敲開的方法不同將所有的人分爲兩類,從圓頭開始將雞蛋敲開的人被歸爲Big Endian,從尖頭開始將雞蛋敲開的人被歸爲L

原创 C++編程思想學習筆記---第十章 名字控制

第十章 名字控制 10.1 來自C語言中的靜態元素 在C和C++的定義中,static都有兩種基本含義: 1) 在固定的地址上進行存儲分配,對象在靜態區創建,而不是每次調用函數時在堆棧上產生。  ===> 生存期:在每次進入定義該變量的函

原创 C++編程思想學習筆記---第八章 常量

第八章 常量概念(由關鍵字const表示)是爲了使程序員能夠在變和不變之間畫一條界限。這在C++程序設計項目中提供了安全性和可控性 1、值代替 C語言用#define  BUFSIZE 100的宏定義方式來做值替換。好處是100的意義清

原创 內置協議棧的GPRS模塊SIM800,只用AT指令控制就可以撥號上網了嗎?

最近在做一個無線模塊SIM800,手冊上是說內置TCP/IP協議,別人跟我說只用AT指令控制就可以撥號上網,我覺得有些不能理解,求大神指導一下。 我對GPRS無線模塊撥號上網的理解: 1、AT+CGDCONT定義PDP上下文,裏面包含接入

原创 C++編程思想學習筆記---第九章 內聯函數

第九章  內聯函數 爲了解決C中不太方便,且容易出錯的宏定義的問題,C++中使用內聯函數來代替。內聯函數有三大優點:1) 增加了參數檢查,保證了代碼的正確性 2) 仍然像C中一樣,內聯函數在調用處展開,而不是像普通函數一樣需要壓棧,RE

原创 2G模塊如何實現內置協議棧上網

前一陣之做了一個2G模塊作客戶端通過內置協議棧上網的項目,我只負責庫文件,業務層的實現是由別人完成的。這裏想就過程中遇到的問題做個總結,算是學習筆記。 注:以下內容都是本人在工作過程中的自己思考和向前輩工程師們討教的結果,若有侵權,請與我

原创 打印一個集合的冪集C++實現

問題:打印一個集合的冪集? 分析:可自行百度冪集的定義,簡單點說就是打印一個集合(此處用英文字母代替)的所有子集(包括空集)。 例如:集合 {A,B,C}的冪集爲ABC, AB#, A#C, A##, #BC, #B#, ##C, ###