原创 C語言實現單鏈表。

因爲順序表的不足而產生了鏈表,鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱爲結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:

原创 進程間通信之“內存共享”的簡單實現

1. 共享內存的有效特點: 是所有進程間通信最快的 不提供任何的同步,互斥機制,(用戶可通過設置信號量來保證同步,互斥機制) 生命週期隨內核 2. 創建共享內存 int shmget(key_t key, size_t siz

原创 C語言實現單鏈表面試題——基礎篇(上)

1.比較順序表和鏈表的優缺點,說說它們分別在什麼場景下使用? 順序表的特點是邏輯上相鄰的數據元素,物理存儲位置也相鄰,並且,順序表的存儲空間需要預分配。 它的優點 : (1)方法簡單,各種高級語言中都有

原创 誰是兇手:

日本某地發生了一件謀殺案,警察通過排查確定殺人兇手必爲4個嫌疑犯的一個。以下爲4個嫌疑犯的供詞。 A說:不是我。 B說:是C。 C說:是D。 D說:C在胡說 已知3個人說了真話,1個人說的是假話。 現在根據這些信息,寫一個程序來確定到底誰

原创 C語言實現單鏈表面試題——基礎篇(下)

9.查找單鏈表的中間節點,要求只能遍歷一次鏈表 思想:這個問題,我們需要先創建一個數組,但我們需要知道鏈表大致的範圍,我在這裏假定鏈表節點數小於1000個,然後我們每遍歷一個節點,就把節點放入數組(數組從零逐個遞增,用 i 表示存

原创 C語言實現單鏈表面試題——基礎篇(中)

6.逆值/翻轉單鏈表 思想同從頭打印鏈表一樣,但應注意在反向連接鏈表時的指向問題 void ListTranspose(ListNode **ppList,ListNode *pList)//轉置單鏈表 { a

原创 xshell連接Ubuntu記錄

xshell連接Ubuntu記錄TOC 1. 安裝xshell Xshell下載地址:https://www.netsarang.com/products/xsh_overview.html 下載後按照提示進行安裝即可 注意: 使

原创 線程簡單理解

線程的概念 有些情況需要一個進程同時執行多個控制流程,這時候線程就派上用場了,比如實現一個圖形界面的下載軟件,一方面需要和用戶交互,等待,和處理用戶鼠標鍵盤的事件,另一方面又需要同時下載多個文件,等待和處理從多個網路主機發來的數據

原创 線程的生產者消費者模型

1. 基於單鏈表的生產者與消費者模型 生產者—消費者模型的321原則: 3種關係: 生產者-生產者 ***互斥*** 消費者-消費者 ***互斥*** 生產者-消費者 ***互斥,同步*** 2種角色

原创 使用Navicat for mysql接連Ubuntu16的心路歷程

爲什麼會記錄這個心路歷程呢, 因爲中間遇到了很多問題, 查找網上的辦法每一個可行的, 是因爲自己掉進了自己挖的坑裏面去了,所以這裏記錄下, 給大家,也給自己以後可以用來參考的記錄. 1. 安裝mysql #一定要先更新,不然就不知

原创 冒泡法排序

用冒泡法排序: 例如:              9 8 7 6 5 3 2 1 0 依次排序:第二次: 7 6 5 4 3 2 1 0 8 9                   第三次: 6 5 4 3 2 1 0 7 8 9  

原创 線程死鎖

1. 什麼是死鎖 死鎖是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象。 2. 死鎖要產生必須具備四個必要條件: 1. 互斥條件 2. 請求和保持條件 3. 不可剝奪條件 4. 環

原创 用C語言實現通訊錄文件存儲的版本

要實現文件存儲,首先需要了解幾個函數 fopen :FILE *fopen( const char *filename, const char *mode ); 作用:fopen函數打開指定的文件文件名。;參數filename

原创 淺談“函數調用”在VS中怎樣實現

淺談“函數調用”在VS中怎樣實現: 首先我們應該瞭解main()函數也是被調用的: mainCRCStartup()  調用    __tmainCRCStartup())  調用  main()函數 接下來我們用一個程序來簡單實現一

原创 有關數組的運算:sizeof()和strlen()

有關數組的運算: 首先我們分析一下sizeof()和strlen(); sizeof()功能:計算數據空間的字節數                      當數組名單獨放進sizeof()裏表示整個數組。 strlen()計算字符數組的