原创 劍指offer之面試題17 :合併兩個排序的鏈表

題目:輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。思路1:讓兩個指針分別指向兩個鏈表,誰小就將當前節點尾插入新鏈表中代碼: /* struct ListNode { int val; st

原创 劍指offer之面試題21:包含min函數的棧

題目:定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。思路一:通過每次在壓入棧頂的元素與當前最小元素相比後,保存一遍最小元素,每次彈出,都彈出兩個,這個就能得到棧當前最小元素了代碼:class Solution { p

原创 劍指offer之面試題20:順時針打印矩陣

題目:輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印1,2,3,4,8,12,16,15,14,13,9,5,

原创 劍指offer之面試題19:二叉樹的鏡像

題目:操作給定的二叉樹,將其變換爲源二叉樹的鏡像。二叉樹的鏡像定義:源二叉樹                    8                  /  \                6   10                /

原创 劍指offer之面試題25:複雜鏈表的複製

題目:輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空)思路:分而治之的思想

原创 《將博客搬至CSDN》

搬家通知博文地址: 從http://momo462.blog.51cto.com/搬家到:http://blog.csdn.net/sinat_29300379

原创 有限狀態機&Time_wait的解讀

1、TCP有限狀態機其中各狀態的含義:    狀態含義closed初始狀態listen被動打開一方——監聽狀態syn_sent主動打開一方——連接建立已發送syn_rcvd被動打開一方——連接建立已接收established雙方——連接已經

原创 死鎖產生的4個必要條件及如何有效避免死鎖

什麼是死鎖?如果一個進程集合裏面的每個進程都在等待只能由這個集合中的其他一個進程(包括他自身)才能引發的事件,這種情況就是死鎖。這個定義可能有點拗口,下面用一個簡單例子說明。  資源A、B,進程C、D描述如下:  資源A和資源B,都是不可剝

原创 TCP中URG和PSH的含義及區別

1、URG緊急位      URG=1,該tcp報文爲緊急報文;其中的緊急數據需要直接交付給接收端的進程,而不進入緩存。    緊急數據的長度=緊急指針;    緊急數據的起始點=序號;    緊急數據的終止點=序號+緊急指針; (綜上,緊

原创 線程安全和可重入函數的區別和聯繫

線程安全函數 概念:        線程安全的概念比較直觀。一般說來,一個函數被稱爲線程安全的,當且僅當被多個併發線程反覆調用時,它會一直產生正確的結果。  確保線程安全:        要確保函數線程安全,主要需要考慮的是線程之間的共享變

原创 劍指offer之面試題22:棧的壓入、彈出序列

題目:輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就

原创 線程安全和可重入函數的區別和聯繫

線程安全函數 概念:        線程安全的概念比較直觀。一般說來,一個函數被稱爲線程安全的,當且僅當被多個併發線程反覆調用時,它會一直產生正確的結果。  確保線程安全:        要確保函數線程安全,主要需要考慮的是線程之間的共享變

原创 socket通信——TCP

1、socket      每一條TCP連接兩個端點,TCP連接的端點交錯socket      socket=(IP地址:端口號)———>標示了網絡上唯一的一個進程      每一條TCP連接被兩個socket(即socket pair)

原创 HTTP協議Keep-Alive詳解及問題

1、http的基礎知識http是一個請求——響應模式的典型範例,即客戶端向服務器發送一個請求信息,服務器響應這個信息。在老的http版本中:每一個請求都創建一個TCP連接,當一次請求被響應後,tcp四次揮手,連接斷開。這個模式的優點:簡單,

原创 多路複用——poll

1、基本知識  poll的機制與select類似,與select在本質上沒有多大差別,管理多個描述符也是進行輪詢,根據描述符的狀態進行處理,但是poll沒有最大文件描述符數量的限制。poll和select同樣存在一個缺點就是,包含大量文件描