原创 生產者消費者模型

在實際的軟件開發過程中,我們會遇到很多比較現實的場景。例如,某些模塊負責去產生數據,而數據的處理則由其他模塊去處理。產生數據的模塊則被人形象的稱爲生產者,而處理數據的模塊則被人形象地稱爲消費者。 生產者消費者模型: 爲什麼需要存在緩衝區

原创 劍指offer--複雜鏈表的複製

題目詳情:複雜鏈表的複製;鏈表節點會存在一個隨機指針,它會指向任意節點或NULL,請完成它的複製。 節點結構體: typedef struct ComplexNode{ int _data; // 數據 struct Compl

原创 劍指offer-- 合併兩個排序的鏈表

題目描述:輸入兩個遞增的鏈表,輸出一個合併之後的鏈表,合併後的鏈表需保持遞增狀態。 輸入例子: L1: 2->5->8->12->13->15->16->18->20 L2:1->3->4->7->9->10 輸出: L:1->2->3-

原创 劍指offer--判斷鏈表是否帶環?若帶環求環的長度?若帶環求環的入口點?

1、判斷鏈表是否帶環? 鏈表是否帶環,可以採用快慢指針法,用兩個指針指向鏈表的頭結點,一個指針一次向後走一個位置,另一個指針向後走兩個位置,這樣如果兩個指針如果相遇,這樣就能說該鏈表帶環,如果當快指針或者快指針的next爲NULL時,還沒

原创 劍指offer--不用加減乘除做加法

題目描述:寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 題目思路: 1、回顧一下5+7=12的過程;  個位得到的是2,十位進位爲10,相加得12; 如果沒有進位的時候直接就是各位相加得數; 2、那麼利

原创 warning: control reaches end of non-void function

用gcc編譯時,出現這樣的錯誤。 warning: control reaches end of non-void function 意思是: 在非void函數的結尾。就是說你的一些本應帶有返回值的函數到達結尾後可能並沒有返回任何值。這時

原创 劍指offer--反轉鏈表

題目描述:輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。 思路1: 1、用三個鏈表指針分別指向當前節點、當前節點的前一個節點,當前節點的下一個節點; 2、將節點的next指向反轉,也就是讓當前節點的next指向當前節點的前一個節點,最後

原创 宏定義實現swap

宏定義在c++程序編譯過程中,在宏替換過程中直接替換相關代碼,效率會有很大的提升。 今天談一下SWAP交換的幾種編寫方式:#define SWAP(a,b) \ do{ int temp = a; \ a = b;

原创 模擬實現一個Stack 要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度爲O(1)

模擬實現Stack,要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度爲O(1)。 思路: Min(返回最小值的操作)我們可以實現用一個輔助棧或者輔助數組來實現。 用輔助棧來保存最小的值; 考慮到數據的多樣

原创 騰訊面試題--程序一共輸出多少個“-”

題目詳情: 請判斷下列程序一共輸出多少個“-”; int main(void) { int i; for(i=0; i<2; i++){ fork(); printf("-"); } return 0; } 題目分析:

原创 鏈表K個節點翻轉

題目描述: 給出一個鏈表和一個數k,比如鏈表1→2→3→4→5→6,k=2,翻轉後2→1→4→3→6→5,若k=3,翻轉後3→2→1→6→5→4,若k=4,翻轉後4→3→2→1→5→6,用程序實現Node* RotateList(Node

原创 LeetCode-8. String to Integer (atoi)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a ch

原创 CRC檢驗--循環冗餘檢驗

一、什麼是CRC循環冗餘校驗? 要想了解什麼是CRC,需要先了解一下下面幾個概念。。 比特差錯:現實中的 通信鏈路是不理想的,這也就是說在傳輸過程中可能會產生差錯,1也許會變成0,0或許也會變成1。這就是比特差錯。 CRC循環冗餘校驗則是

原创 數字的反轉

Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 備註:當數字溢出時,則程序返回0。 解題思路: 1、

原创 shell下彩色進度條的編寫

實現的進度條有隨進度而變的百分比,以及隨時間變化而變化的加載轉動圖標; 1、linux顏色的設置:顏色分爲前景色與後景色 設置前景色時爲30+顏色編號+m 設置後景色時爲40+顏色編號+m 顏色編號: 0      黑色 1      紅