原创 二叉樹公共祖先節點的查找

  #include <iostream> #include <vector> using std::endl; using std::vector

原创 操作系統中10種頁面置換算法的總結

         頁面置換算法總結 當發生缺頁中斷時,操作系統必須將內存中選擇一個頁面置換出去爲要調入的新頁面騰出空間。    那究竟選擇哪一個淘汰哪一個一面比較好呢? 1.      最優頁面置換算法 選擇最長時間內不會被訪問的頁面丟掉

原创 歸併排序分析

     #include <iostream> using namespace std; void Merge(int *data,int st

原创 冒泡排序和快速排序

<span style="font-family: Arial, Helvetica, sans-serif;">using namespace std; </span>void IdiotSort(int *data,int star

原创 進程間通信的幾種方式

           進程間的幾種通信      1.管道(pipe)是一種半雙工的通信方式,數據只能單向流動,並且只限於帶有親緣關係之間的父子進程之間。      2,有名管道(named)也是半雙工,單向流動,但不限於父子進程。  

原创 TCP協議建立連接的三次握手四次揮手機制

   1,三次握手建立連接     初始狀態:服務器調用LISTEN原語。由CLOSED狀態進入被動等待連接請求狀態。            第一次握手:此時客戶執行一個CONNECT原語,同時指定一下參數,我要連接的IP地址呀,端口呀,

原创 sleep()和wait()的區別——我的粗淺理解

          sleep()和wait()都用於進行線程控制,其本質區別是sleep()不釋放同步鎖,wait()釋放同步鎖          也就是說sleep()執行的時候,其他線程是不可以使用同步控制塊或者方法,就是說某線程執

原创 分頁系統的實際實現問題

分頁系統的實際實現問題      操作系統在四個階段要做與分頁相關的工作:進程創建,缺頁中斷時,進程執行,進程結束時。    當在分頁系統創建一個新進程時,操作系統首先要確定程序和數據在初始時有多大,併爲他們創建一個頁表,然後在內存中爲

原创 分頁系統中的設計問題

1.       局部分配策略與全局分配策略 局部頁面置換算法:爲每個進程分配固定的內存片段,每個進程頁框數固定。 全局頁面置換算法:在可運行進程之間動態分配頁框,分配給每個進程的頁框數是隨時間變化的。   一般情況下,全局頁面置換算法比

原创 二叉樹中和爲某一值的路徑

#include <iostream> #include <vector> using std::endl; using std::vector; using std::cin; using std::cout; struct treeN

原创 操作系統的存儲管理概述

        現代操作系統採用“分層儲存器體系“ 計算機擁有若干兆快速、昂貴且易失性的高速緩存,價格與速度適中的同易失性的內存以及不易失訪問速度慢的大容量的磁盤存儲 操作系統中分層存儲器體系的部分稱爲存

原创 帶MIN函數的棧實現(push pop min 操作都只花O(1))

struct listNode { int value; listNode * next; <strong>listNode *min;</strong> //多一個指針就可以 }; class Stack { p

原创 八皇后問題

#include<iostream> #include<math.h> using namespace std; using std::cout; const int size=8; int abs(int x) { return

原创 如何判斷數組序列是否爲後序遍歷

#include <iostream> using namespace std; bool isPostOrder(int *data,int start,int end) { if(start==end||start==end-1)/

原创 如何將搜索二叉樹轉化爲排序雙向鏈表

#include <iostream> #include<queue> using namespace std; struct treeNode { int value; treeNode* le