原创 關於二叉樹的結構與遍歷
二叉樹 二叉樹是一棵特殊的樹,二叉樹每個節點最多有兩個孩子結點,分別稱爲左孩子和右孩子。 滿二叉樹:高度爲N的滿二叉樹有2^N - 1個節點的二叉樹。 完全二叉樹: 若設二叉樹的深度爲h,除第 h 層外,其它各層 (1~h-1
原创 進程
一.操作系統 1.操作系統是應用程序和硬件之間的插入的一層軟件,所有應用程序對硬件的操作都要通過操作系統。任何計算機都包含一個基本的程序集合,稱爲操作系統 2. 內核: 是操作系統最基本的部分,主要負責管理系統資源(
原创 子進程的創建
1.fork()函數 include<unistd.h> 一個現有進程可以調用fork函數穿件一個新進程,子進程返回0,父進程返回子進程ID,出錯返回-1 子進程是父進程的副本,子進程獲得父進程的數據
原创 vim、gcc/g++、ctags簡析
<一>.vim 一.vim有主要有三種模式:命令模式、插入模式、底行模式 1.命令模式(command mode) 控制光標的移動、字符、字或行的刪除,移動複製某段進入Insert
原创 二叉搜索樹
二叉搜索樹 二叉搜索樹是基於二叉樹的一種結構,對於一個二叉樹它的左節點小於它的根節點,它的右節點大於它的根節點,它的每個子樹的結構相同 其結構以及接口實現過程如下 template<class K,class V> struct BSTr
原创 排序
排序 一、插入排序 1.直接插入排序 時間複雜度O(N^2) 思想:每次用無序區的第一個元素和有序區的元素從後往前比,找到合適的位置後,把有序區的元素依次後移,插入那個元素後使有序區再次有序 <span style="font-
原创 linux的進程通信-管道
進程間通信 每個進程各自有不同的用戶地址空間,任何一個進程的全局變量在另一個進程中都看不到。 在設計一個進程時,讓進程感覺自己獨佔資源,一個進程佔(可訪問)的最大空間爲2^32(32位下)(虛擬地址到物理地址的轉換)
原创 快速排序的幾種優化
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">快速排序是交換排序的一種。其主要過程爲:</sp
原创 關於鏈表的問題
關於鏈表 鏈表是一種動態的數據結構,因爲在創建鏈表時無需知道鏈表的長度,當插入一個節點時,只需要爲新的節點分配內存,其空間效率和數組相比要高,但是每次都要創建空間所以時間不是很高單向鏈表定義節點struct ListNode {
原创 樹的面試題
簡介 前面介紹過二叉樹的數據結構,它的邏輯很簡單,除了根結點之外每個結點只有一個父節點,除了葉結點之外所有的結點都有一個或多個子節點。父和子之間用指針連接。 二叉樹有三種變量方式: -前序遍歷:根左右 -中序遍歷:左
原创 字符串的一個小測試
字符串即若干字符組成的序列,每個字符串都以‘\0’結尾,由於這個特點,每個字符串都有一個額外的字符開銷,所以要注意字符串越界的問題。如:char str[10]; strcpy(str,"0123456789");//越界 同
原创 哈希表
HashTable-散列表/哈希表,是根據關鍵字(key)而直接訪問在內存存儲位置的數據結構。它通過一個關鍵值的函數將所需的數據映射到表中的位置來訪問數據,這個映射函數叫做散列函數,存放記錄的數組叫做散列表。直接定址法--取關鍵字的某個線性
原创 將博客搬至CSDN
歡迎訪問http://blog.csdn.net/sekai_z
原创 我的友情鏈接
Pzd流川楓
原创 子進程
1.fork()函數 include<unistd.h> 一個現有進程可以調用fork函數穿件一個新進程,子進程返回0,父進程返回子進程ID,出錯返回-1 子進程是父進程的副本,子進程獲得父進程的數據空間、堆和棧