原创 c++ — 類與對象

封裝: 將數據和操作數據的方法進行有機結合,隱藏對象的屬性和實現細節,僅對外公開接口來和對象進行交互。 類的定義 //關鍵字(class或struct(與c語言兼容)) //ClassName爲類名 class classNa

原创 Linux — 進程信號

信號更多的是通知事件的發生,信號產生之後第一時間也不是直接處理,而是先存儲下來,處理信號 時會打斷當前進程正在執行的工作,然後去準備處理事件,事件處理完畢之後進程會回到原先運行的位置繼續運行。 Linux下有62種信號,可以使用 ki

原创 Linux — 進程間通信

進程間的通信方式 管道 管道符 | 連接兩個命令,將前面命令的結果交給後面的命令處理 重定向 修改數據流向 > 標準輸出(終端顯示器)重定向 清除原有內容,將新內容寫入 >> 標準輸出(終端顯示器)

原创 Linux — 基礎IO

標準C IO fopen(); //打開文件 FILE *fopen( const char *filename, const char *mode ); fclose(); //關閉文件 int fclose(FILE

原创 Linux — 進程控制

進程創建 fork()函數 使用fork系統調用通過複製調用進程來創建一個新進程,調用fork的進程我們稱爲父進程,創建出來的新進程稱之爲子進程。 pid_t fork(void); fork的返回值 對於父進程來說,返回值是子進程

原创 Linux — 進程概念

進程基本概念 進程是什麼 運行起來(進行中)的程序就是進程,程序運行起來需要加載到內存。 站在操作系統的角度看進程 進程就是操作系統對進程的描述,而這個描述有一個名字叫PCB (進程控制塊/進程描述符) linux下PCB有自己

原创 Linux — 環境開發工具的使用

vim——文本編輯工具 vim的模式 vim下有12種模式,分爲6種基本模式和6種條件模式,在這裏,我們主要介紹3種模式 正常/普通/命令模式: 控制屏幕光標的移動,字符、字或行的刪除 插入模式: 進行文字輸入 末行模式: 文

原创 Linux—基礎知識

環境: CentOS 6.5 Linux系統目錄結構——樹狀結構 樹狀結構 以下是對目錄的解釋 / 根目錄 /root 該目錄爲系統管理員,也稱作超級權限者的用戶主目錄。 /usr 這是一個非常重要的目

原创 排序

排序算法的穩定性: A和B的關鍵字相等,排序後A、B的先後次序保持不變,則稱這種排序算法是穩定的(進行元素交換/插入時時候跨區間,若跨區間,則不穩定) 插入排序 算法思想: 每一步將一個待排序的對象,按其關鍵字大小,插入到前面已經

原创 c++ — 基礎語法

C++輸入&輸出 使用cout標準輸出(控制檯)和cin標準輸入(鍵盤)時,必須包含頭文件以及std標準命名空間。 #include using namespace std; 在std命名空間下,爲了和C頭文件區分,也爲了正確使用

原创 用C語言實現FlappyBird

在《FlappyBird》這款遊戲中,玩家需要用一根手指來操控小鳥往上飛,不斷的點擊屏幕就會不斷的往高處飛。放鬆手指,則會快速下降。所以玩家要控制小鳥一直向前飛行,然後注意躲避途中高低不平的管子得分。 在這裏,我們主要使用C語言中的

原创 哈希表—開散列

基本概念 開散列—首先對關鍵碼集合用散列函數計算散列地址,具有相同地址的關鍵碼歸於同一子集合,每一個子集合稱爲一個桶,各個桶中的元素通過一個單鏈錶鏈接起來,各鏈表的頭結點存儲在哈希表中。 (負載因子a不超過0.5;如果超出必須考慮

原创 哈希表—閉散列

哈希表的基本概念 操作 插入元素時:根據待插入元素的關鍵碼,以此函數計算出該元素的存儲位置並按此位置進行存放 搜索元素時:對元素的關鍵碼進行同樣的計算,把求得的函數值當做元素的存儲位置,在結構中按此位置取元素比較,若關鍵 碼相等,則

原创 堆的應用

注:本文中所使用的堆的基本操作均在《堆的基本操作》中。 鏈接:https://blog.csdn.net/lw13572259173/article/details/84946167 優先級隊列 定義 typedef int PQ

原创 二叉搜索樹的基本操作

定義 typedef int BSDataType; typedef struct BSTreeNode { struct BSTreeNode* pLeft; struct BSTreeNode* pRight; BSData