原创 淺析進程概念以及進程狀態

一、進程是什麼? 程序:完成特定任務的一系列指令的集合。(官方定義) 進程: (用戶角度):程序的一次動態執行過程。 分時系統:時間片輪轉 (操作系統角度):進程是操作系統分配資源的基本單位,也是最小單位 進程是怎樣被操作

原创 Linux下的部分指令和vim的簡單配置

一、Linux下的部分基礎指令 1、ls指令:對於目錄而言,該命令列出該目錄下的所有目錄和文件;對於文件而言,將會列出文件名以及其他信息 我們一般常用的有以下幾個: ls -l :列出文件的詳細信息 ls -a : 列出文件

原创 遍歷二叉樹-------遞歸&非遞歸

一、什麼是樹?什麼又是二叉樹 (1)樹的定義 樹是一種特殊的數據結構,是由N(N>=0)個節點構成的具有層次關係的集合。每棵樹都有一個特殊的結點,就是根結點,根節點沒有前驅結點;除過根節點的其餘結點被分爲若干個互不相交的集合

原创 文件標識符(fd)和FILE結構體

前言: fopen,fclose,fwrite,fread屬於C庫當中的函數,爲庫函數調用。而open,close,write,read這幾個函數屬於系統提供的藉口,稱之爲系統調用。庫函數和系統調用是上下級關係,在庫函數中

原创 淺析堆的基本操作以及堆排序

一、堆的基本介紹 1、堆的概念 堆是一類特殊的數據結構的統稱。堆通常是一個可以被看做一棵樹的數組的對象。堆滿足以下的性質 (1)堆中某個節點的值總是不大於或不小於其父節點的值 (2)

原创 開啓虛擬機時提示VMware Workstation cannot connect to the virtual machine.時的解決辦法

打開虛擬機的時候,彈出對話框如下圖所示: 提示出現上述錯誤,無法正常啓動虛擬機,爲什麼會出現上述的問題嘞? 解:其實這個是授權服務問題,沒有這個服務打開虛擬機軟件時會出現相關權限缺失或錯誤的提示,虛擬機無法啓動。 有以下兩

原创 淺析B-樹分裂

一、B-樹的定義(適合查找的平衡的多叉樹。) 一顆M階(M>2)的B-樹,是一顆平衡的M路平衡搜索樹,可以是空樹或者滿足B-樹的性質 二、B-樹的性質? (1) 根節點至少有兩個孩子 (2) 每個非根節點

原创 如何測試機器的大小端

一、大小端 1、爲啥會有大小端 在計算機系統中以字節爲單位,每個地址單位都有一個字節(一個字節8個bit位)。在C語言中,有char(8bit)、short(16bit)、long(32bit,具體看編譯器)。對於位

原创 進程創建(一)之 fork & vfork

一、進程創建(PCB、虛擬地址空間、頁表、數據(映射關係加載好)) 1、fork fork可以從已有的進程中創建出一個新進程也叫作子進程,原來的那個進程就叫做父進程。一般,fork創建出子進程後,子進程一般是和父進程代碼實現共

原创 代碼實現一個日期類Date

日期類是C++類學習過程中比較重要的一個類,這次寫的日期類主要用來模擬實現(1)日期的加減days(2)兩個日期之間相隔的天數(3)判斷兩個日期時間是否相等(4)比較兩個日期之間的大小 日期類實現起來並不複雜,主要難點在於保證日期

原创 【劍指offer】------查找字符串中第一次只出現一次的字符

題目:查找字符串第一次中只出現一次的字符 方法一:(不建議使用第一種方法) 從頭遍歷字符串,當遍歷到某個字符時,就將其依次和後面的字符相比較,若不相同,則這個字符就是我們要找的字符。該方法的時間複雜度較大爲O(

原创 【牛客雜記】之類型轉換

表達式會包含隱式類型轉換,它由編譯器自動執行,不需要程序員自己介入 *何時發生隱式類型轉換* 1.在混合類型的表達式中,操作數會被轉換爲相同類型 eg: int a ; double b; a>=b

原创 打包生成一個靜態庫&動態庫

靜態庫和動態庫之間不同之處就在於代碼被載入的時刻不同。靜態庫的代碼在編譯過程中已經被載入可執行程序,因此體積比較大;動態庫(共享庫)的代碼是在可執行程序運行時被載入內存的,在編譯過程中僅簡單的引用,因此代碼體積較小 一、靜態庫

原创 並查集-----小米麪試題之朋友圈問題

先來看一下題目: 已知有n個人和m個好友關係(存在數字r),如果兩個人是直接或者間接的好友(好友的好友的好友……),則認爲他們屬於同一個朋友圈。請寫程序求出這n個人裏一共有多少個朋友圈? 例如:n=5,m=3,r={{1,

原创 Linux進程信號之如何產生信號

一、信號概念 在日常生活中,我們經常也會遇見信號,比如“上下課的鈴聲”、“十字路口的紅路燈” 。而在Linux中,信號如同交通信號燈一樣,它就是給操作系統或者進程提供某種信息,讓操作系統或者進程做出某種對應的反應,就如同十字路口的