原创 (一)文件IO

目錄 0.所涉及的OS API 1.文件讀寫的簡單例子 1.1 文件操作三步曲 1.2 open打開文件時,open具體做了哪些事情 2. open函數  2.1 函數原型 2.2 open函數返回值 2.3 open函數的重點:flag

原创 (五)進程控制

目錄 1. 有關進程 1.1 什麼是進程 1.2進程ID(PID) 1.3 三個特殊的進程 進程 ID == 0 的進程 進程ID == 1的進程 進程ID == 2的進程 1.4獲取與進程相關的各種ID的函數 2. 程序的運行過程 2.

原创 (三)系統信息

目錄 第一部分:獲取系統文件的數據 1. 口令文件:/etc/passwd 1.0 什麼是口令文件? 1.1 文件內容 1.1.1 賬戶所包含的信息 1.1.2 getpwuid、getpwnam  1.2 陰影文件:/etc/shado

原创 (九)高級IO

目錄 1.非阻塞IO 1.1.阻塞讀文件  1.2.如何實現非阻塞讀 (1)打開文件時指定O_NONBLOCK狀態標誌 (2)通過fcntl函數指定O_NONBLOCK來實現  1.3.實現同時“讀鼠標”和“讀鍵盤” 2.文件鎖 2.1.

原创 面試題34. 二叉樹中和爲某一值的路徑 面試題35. 複雜鏈表的複製

面試題34. 二叉樹中和爲某一值的路徑     面試題35. 複雜鏈表的複製

原创 面試題32.1 從上往下打印二叉樹

class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> res; if(ro

原创 對稱的二叉樹與順時針打印矩陣

對稱的二叉樹 class Solution { public: bool Compare(TreeNode* left,TreeNode* right){ if(left == NULL && right ==

原创 30.包含min函數的棧 與31.棧的壓入、彈出序列

30.包含min函數的棧 class Solution { public: vector<int> vec; int min_val=INT_MAX,min_cnt=0; void push(int value)

原创 [劍指Offer]---26樹的子結構與27二叉樹的鏡像

26樹的子結構 入兩棵二叉樹A和B,判斷B是不是A的子結構。(約定空樹不是任意一個樹的子結構) B是A的子結構, 即 A中有出現和B相同的結構和節點值。 例如: 給定的樹 A:      3     / \    4   5   / \

原创 [劍指Offer]---反轉鏈表與合併兩個排序的鏈表

反轉鏈表 描述 定義一個函數,輸入一個鏈表的頭節點,反轉該鏈表並輸出反轉後鏈表的頭節點。   示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL   限制: 0 <= 節點個數 <=

原创 [劍指Offer]---07重建二叉樹與09用兩個棧實現隊列

07重建二叉樹 描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。   例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder

原创 [劍指Offer]---17-打印從1到最大的n位數與18-刪除鏈表的節點

17-打印從1到最大的n位數 描述 輸入數字 n,按順序打印出從 1 到最大的 n 位十進制數。比如輸入 3,則打印出 1、2、3 一直到最大的 3 位數 999。 示例 1: 輸入: n = 1 輸出: [1,2,3,4,5,6,7

原创 [劍指Offer]---19-正則表達式匹配與20-表示數值的字符串

19-正則表達式匹配 描述 請實現一個函數用來匹配包含'. '和'*'的正則表達式。模式中的字符'.'表示任意一個字符,而'*'表示它前面的字符可以出現任意次(含0次)。在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aa

原创 [劍指Offer]---11 旋轉數組的最小數字與12 矩陣中的路徑

11 旋轉數組的最小數字 題目 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如,數組 [3,4,5,1,2] 爲 [1,2,3,4,5] 的一個旋轉,該數

原创 [劍指Offer]---13機器人的運動範圍與14- I 剪繩子

13 機器人的運動範圍 描述 地上有一個m行n列的方格,從座標 [0,0] 到座標 [m-1,n-1] 。一個機器人從座標 [0, 0] 的格子開始移動,它每次可以向左、右、上、下移動一格(不能移動到方格外),也不能進入行座標和列座標的