原创 關於系統調用fork()

一、fork入門知識 一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程, 也就是兩個進程可以做完全相同的事,但如果初始參數或者傳入的變量不同,兩個進程也可以做不同的事。一個進程調

原创 關於Linux操作系統層次結構分析

本文轉自http://www.jb51.net/LINUXjishu/214104.html 首先來看一張圖(這是Linux操作系統的大致層次結構): 最內層是硬件,最外層是用戶常用的應用,比如說firefox瀏覽器,evolution

原创 二叉搜索樹的實現(查找,插入,刪除的遞歸與非遞歸)

BST定義: 二叉搜索樹:又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹 1、若它的左子樹不爲空,則左子樹上所有節點的值都小於根節點的值 2、若它的右子樹不爲空,則右子樹上所有節點的值都大於根節點的值 3、它的左右子樹也分別

原创 二叉樹的幾道典型例題

1.求二叉樹的高度 int _GetTreeHight(Node<T>* pRoot) { if(pRoot==NULL) return 0; if(pRoot->_pLeft==NULL&&pRoot->_pRight

原创 Linux下粘滯位

之前已經分析過Linux下的文件權限:http://blog.csdn.net/chenkaixin_1024/article/details/64924059,我們已經知道對於一個文件,存在文件擁有者,文件所屬組以及其他用戶,而且這三者

原创 Linux下進程及其描述task_struct

在談進程之前,我們先說一說程序:在Linux下,我們想生成一個C程序,必定要通過預處理,編譯,彙編,鏈接這四步,才能得到一個可執行文件也就是我們的C程序,而對於我們操作系統而言,要運行一個磁盤上保存的二進制可執行文件,要進行哪些操作呢?

原创 幾道典型的遞歸算法例題

1.求前N個自然數之和 int Sum(int n) { if(n==1) return 1; return n+Sum(n-1); }2.求N的階乘 int Factorial(int n) { if(n==1) retu

原创 淺談shared_ptr與循環引用問題

前面對於智能指針已經大致的提過了(http://blog.csdn.net/chenkaixin_1024/article/details/69276679),但是關於shared_ptr上一篇文章沒有仔細分析,這裏把它單獨拎出來理一理。

原创 C++模板類中的友元聲明

對於在一個類中聲明一個函數或者一個類的友元,我們應該是十分熟悉了,但是這兩天在做題的時候遇到一個問題,就是如何在一個類模板中聲明一個模板函數與我們的模板類的友元關係? 剛開始遇到這個問題的時候,說實話我有點懵,因爲之前根本沒考慮到這一層,

原创 生產者消費者模型

對於生產者消費者模型,必須滿足以下三點: ①3種關係:生產者與生產者之間互斥,消費者與消費者之間互斥,生產者與消費者之間互斥且同步 ②2種角色:生產者,消費者 ③1種交易場所 本文根據交易場所,討論兩種生產者消費者模型:基於單鏈表和基於

原创 AVL樹的旋轉操作

首先,在討論AVL樹之前,我們得明白一點,那就是爲什麼得有AVL樹? AVL樹與二叉搜索樹一樣都是用於搜索的二叉樹,也可以這麼說AVL樹是特殊的二叉搜索樹,它與二叉搜索樹的主要區別在於AVL樹中給定了平衡因子(左右子樹的高度差),而且明確

原创 線程互斥鎖與死鎖

在多線程編程中,由於線程間共享地址空間與大部分資源,而當多個線程同時訪問共享數據的時候,就很有可能會發生衝突導致錯誤。 如下對於一個共享的全局變量進行累加,線程1與線程2均分別做累加5000次操作: #include<stdio.h>

原创 遞歸與尾遞歸

對於遞歸,我們都不陌生,簡單的來說就是一個函數直接或間接的調用自己,一般來說,我們在使用遞歸算法的時候都是有條件的: 1.首先問題的規模是在不斷縮小的,我們可以通過解決子問題從而來解決我們的原問題,而且子問題和原問題的解決方法都是一樣的;

原创 關於時間複雜度與空間複雜度

對於評價一個算法的好壞,我們通常以時間複雜度與空間複雜度來衡量。 時間複雜度:算法中執行基本操作語句的總次數。 空間複雜度:算法中創建對象的個數。 一.時間複雜度 這裏有一點需要注意:對於時間複雜度而言,我們並沒有算法的運行總時間來衡量算

原创 模擬實現shell---“支持重定向功能”

首先,在開始本篇博文之前,我們先得了解什麼是shell? 我們都知道用戶是通過操作系統來對我們的硬件或者軟件進行操作的,但是我們平時在使用計算機的時候並沒有直接與操作系統進行交流,具體關於操作系統的管理軟硬件的層次結構參考前面的文件:ht