原创 IP數據包的格式及分片

一、IP數據包的報文格式    首先我們需要了解數據報的格式: 1-1.版本4位,表示版本號,目前最廣泛的是4=B1000,即常說的IPv4;相信IPv6以後會廣泛應用,它能給世界上每個鈕釦都分配        一個I

原创 死鎖的產生原因和解除

死鎖的定義 如果一組進程中的每一個進程都在等待僅由該組進程中的其他進程才能引發的時間,那麼該組進程是死鎖的。 產生死鎖的必要條件 互斥條件:簡單的說就是進程搶奪的資源必須是臨界資源,一段時間內,該資源只能同時被一個進程所佔有請求和保

原创 Linux中常用的查詢指令(which、whereis、find、locatae)

我們經常在linux要查找某個文件,但不知道放在哪裏了,可以使用下面的一些命令來搜索:Which   查看可執行文件的位置。whereis 查看文件的位置。locate  配合數據庫查看文件位置。Find    實際搜尋硬盤查詢文件名稱w

原创 面試題的那些事(1)

1、春節期間小明使用微信收到很多個紅包,非常開心。在查看領取紅包記錄時發現,某個紅包金額出現的次數超過了紅包總數的一半。請幫小明找到該紅包金額。寫出具體算法思路和代碼實現,要求算法儘可能高效。給定一個紅包的金額數組gifts及它的大小n,

原创 c/c++單鏈表面試題—鏈表帶環問題

1、判斷一個單鏈表是否帶環思路解析:判斷一個單鏈表是不是帶環,就看在遍歷單鏈表的時候能不能遍歷完成,如果帶環的話會陷入死循環程序一直無法結束,但是這種判斷方法在程序的實現是不可能的。所以轉換一種思路,利用兩個遍歷速度不同的指針遍歷,如果存

原创 memcpy函數和memmove函數的模擬實現與區別

1、內存複製函數memcpy的模擬實現 void * my_memcpy(void * buf1, const void * buf2, int count)//內存複製函數 { assert(buf1); assert(buf2)

原创 C語言常見單鏈表面試題(1)

1、刪除單鏈表的非尾節點解題思路:按照一般的思路單鏈表刪除節點是必須知道其前驅節點才能刪除,而在本題中不知道前驅節點,所以轉換思路,先將需要刪除的節點跟其後繼節點的數據域交換,然後再刪除既可。void EraseNotTail(pLink

原创 函數模板在c++動態順序表中的大作用

函數模板提供了一種機制通過它我們可以保留函數定義和函數調用的語義在一個程序位置上封裝了一段代碼確保在函數調用之前實參只被計算一次.函數模板提供一個種用來自動生成各種類型函數實例的算法程序員對於函數接口參數和返回類型中的全部或者部分類型進行

原创 面試題的那些事(2)—斐波那契數列

斐波那契數列1、寫一個函數,輸入n,求斐波那契數列的第n項。斐波納挈數列的定義如下:650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7E/81/wKiom1cCeQLD_

原创 C語言註釋轉換爲c++的註釋

問題要求:將C語言的註釋轉換爲c++的註釋方式常見的C語言註釋問題,由此可見C語言的註釋比較複雜,情況也比較多,如果按照以下的情況一種一種的去處理的話邏輯太過混亂,無法真正的整理清楚,所以需要轉換思路。將複雜的控制邏輯分解成有限個穩定狀態

原创 c++智能指針的不斷演化

RAII資源分配即初始化,定義一個類來封裝資源的分配和釋放,在構造 函數完成資源的分配和初始化,在析構函數完成資源的清理,可以保證資源的正確初始化和釋放。 智能指針的引入:由於return ,throw等關鍵字的存在,導致順序執行流的錯亂

原创 二叉樹的非遞歸遍歷

template<class T> void BinaryTree<T>:: PrevOrderNoRec() { if (_root == NULL) { return; } stack<Node*> s; s.push(

原创 面試題那些事(3)—棧

棧的定義--Stack棧只允許在末端進行插入和刪除的線性表。棧具有後進先出的特性(LIFO,Last In First Out)。650) this.width=650;" src="/e/u261/themes/default/imag

原创 C語言常見單鏈表面試題(2)

問題定義:      寫一個函數Merge函數,該函數有兩個參數,都是遞增的鏈表,函數的功能就是合併這兩個遞增的鏈表爲一個遞增的鏈表,Merge的返回值是新的鏈表。新鏈表由前兩個鏈表按元素遞增順序合併而成,也就是說它不會創建新的元素。比如

原创 Linux進程通信(一)管道

管道: 管道是進程間通信的主要手段之一。一個管道實際上就是個只存在於內存中的文件,對這個文件的操作要通過兩個已經打開文件進行,它們分別代表管道的兩端。管道是一種特殊的文件,它不屬於某一種文件系統,而是一種獨立的文件系統,有其自己的數據結