原创 【數據結構】B樹的創建

B樹也是一種搜索樹,二叉搜索樹、紅黑樹、都是動態查找樹,典型的二叉搜索結構,查找的時間複雜度和樹的高度相關O(log2N)。 這些二叉搜索結構有一個共同的缺陷:數據量大,樹的高度太高,增大訪問磁盤的次數,從而效率低下。 想要加速對

原创 【數據結構】排序算法

大家熟知的排序方式有冒泡排序、選擇排序,這兩種排序方式在處理少量數據的排序時比較方便,但當數據量變大時效率明顯變低。在此我們引入了新的排序方式比如:插入排序、歸併排序、希爾排序、堆排序、快排。 1. 插入排序 直接插入排序:

原创 基礎I/O

基礎I/O,也就是輸入/輸出。下面介紹一些常用的文件操作函數。 1. fopen( ) / fclose( ) 這兩個函數每次都是結伴出現,用fopen打開文件,用close關閉文件。 在結尾位置將

原创 【數據結構】哈希表(2)

哈希表的講解: https://blog.csdn.net/lz201788/article/details/79735508 以下是哈希表的另外的實現方式: 【1.】(不使用vector) 【HashTable2.h】 #pr

原创 簡單瞭解Linux系統

一、Linux主要目錄簡介 (1)/proc Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方

原创 【Linux】管道

【什麼是管道】 (1)管道是Unix中最古老進程間通信的形式 (2)我們把從一個進程連接到另一個進程的一個數據流稱爲一個“管道”。 【匿名管道】( pipe ) 管道是IPC最基本的一種實現機制。我們都知道在Linux下

原创 【Linux】C語言實現進程間通信

首先創建一個server.c文件與client.c文件,使用Makefile將這兩個文件管理起來。 Makefile文件: .PHONY:all all:server client server:server.c gc

原创 【數據結構】哈希表(線性探測法)

哈希表是一種搜索結構,當數據量大時,哈希搜索的效率高,平均時間複雜度O(1)。 【哈希查找】: (1)在插入時,根據待插入元素的關鍵碼,以此函數計算出該元素的存儲位置並按此位置進行存放。 (2)在搜索時,對元素的關鍵碼進行同樣

原创 【數據結構】圖的模擬實現(臨接矩陣法)

什麼是圖: 圖是由頂點集合及頂點間的關係組成的一種數據結構:G = (V , E), 其中頂點集合V={ x| x屬於某個數據對象集} 是有窮非空集合;E = {(x,y) | x,y屬於V } 或者 E = { (x , y ) | x

原创 Shell腳本的語法應用

Shell腳本中的語法與C語言類似 一、shell的一些基本瞭解 1.shell腳本的後綴名爲“ .sh” 2.shell文本以 #!/bin/bash 開頭。#!是一個約定的標記,它告訴這個系統這個腳本需要什麼解釋器來執行。 3.s

原创 讀者寫者模型

讀者寫者模型 讀者與寫者之間的關係: 讀者與讀者:無關係 寫者與寫者:互斥 讀者與寫者:互斥 注:寫獨佔,讀共享,寫鎖優先級高。 讀寫鎖接口: //1.初始化 int pthread_rwlock_init(pthread_rwlo

原创 2018-5-31 TCP、UDP協議對比

1.可靠性: (1)UDP協議:不可靠,沒有確認機制,沒有重傳機制,如果因爲網絡故障該段無法發送到對方,UDP協議層也不會給應用層返回任何錯誤信息; (2)TCP協議:通過校驗和、序列號(按序到達)、確認應答、超時重傳、連接管理、流量控

原创 UDP網絡協議

1.UDP協議段 (1)16位UDP長度: 表示整個數據報(UDP首部+UDP數據)的最大長度; (2)16位檢驗和: 如果檢驗和出錯,直接丟棄該包; 2.UDP的特點 UDP傳輸過程類似於寄信. (1)無連接:直到對端的I

原创 【Linux】進程信號

一、首先,用 kill -l 命令可以查看系統定義的信號列表: 每個信號都有一個編號和一個宏定義名稱,這些宏定義可以在 signal.h 中查看,例如:#define SIGINT 2 。編號34以上的信號爲實時信號。 二、信號常見

原创 網絡套接字的應用

在介紹套接字前,我們需要了解什麼是IP地址,什麼是端口號port: 1.IP地址 ip協議有兩個版本,IPv4 和 IPv6 (一般情況下使用IPv4); IPv4協議佔32個bit;IPv6佔128個bit是IPv4的4倍;