原创 線索化二叉樹的創建及遍歷

#include<stdio.h> #include<iostream> using namespace std; enum thread { LINK, THREAD, }; template<class T>

原创 二叉搜索樹---紅黑樹節點插入

1.紅黑樹的概念:紅黑樹是一棵二叉搜索樹,它在每個節點上增加一個存儲位來表示節點的顏色,可以是red或black,通過對任何一條從根節點到葉子節點上的間單路徑來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近視平衡。 2.紅黑

原创 約瑟夫環的普通解法及優化

約瑟夫環問題的普通解法很簡單,就是不斷遍歷循環鏈表,刪除節點,假如有n個人,等到第m個人報數時殺掉這個人,即刪除這個節點,直到只剩下一個人。 struct Node { Node(int data) :_d

原创 隊列的常見面試題總結

1.實現貓狗隊列 #include<string> #include<queue> //寵物類 class Pet { public: Pet(string type) :_type(type)

原创 守護進程Daemon---fork兩次

1.什麼是守護進程? 守護進程也叫精靈進程,是在後臺運行的一種特殊進程,它獨立於控制終端並且週期性的執行某種任務或等待處理某些發生的事件; 在 linux系統啓動時會有很多系統服務進程,這些系統服務進程沒有控制終端,不能直接和

原创 linux下定時任務的方法crontab

crond是什麼? 使用crond(cron監控程序)來定期運行一些任務比如備份日誌、數據庫、 把日誌發送到自己郵箱等等操作都可以又定期運行程序來完成。 crond是個腳本每次Linux啓動的時候都自動起到該腳本該腳本是

原创 堆的基本操作

堆的創建及插入刪除堆頂元素等基本操作 用模板參數來調整大小堆 #include<stdio.h> #include<vector> #include<assert.h> #include<iostream> using nam

原创 二叉搜索樹---AVL樹刪除節點

前面我們寫了AVL樹的創建AVL樹插入節點,即節點的插入,下面我們介紹AVL樹節點的刪除,與前面調整的 方法相同,在樹不平衡時,對樹進行調整,具體步驟如下: 1. - 判斷樹是否爲NULL,若爲NULL,直接返回false;

原创 Huffman樹的創建

運用了小堆堆的基本操作 #include<stdio.h> #include<iostream> using namespace std; #include"heap.cpp"//引用堆的創建文件 template<class

原创 CRC循環冗餘檢驗算法

1.爲什麼要有CRC循環冗餘檢驗算法 數據在網絡的傳輸過程中,都是以二進制數據傳輸,即不是0,就是1;數據傳輸過程中,因爲各種可能的原因導致數據0變爲1,1變爲0。爲了保證傳輸數據的可靠性,在計算機網絡傳輸時,必須採用各種差錯檢

原创 棧的面試題總結

1.不用輔助空間實現棧的逆序(利用函數的遞歸) 例如棧中元素1 2 3 4,逆序後棧中元素爲4 3 2 1 int GetLastNumOfStack(stack<int>& s)// 得到棧頂的元素 { int res

原创 二叉樹搜索樹---AVL樹插入節點

1.AVL樹的概念: AVL樹或則是空樹,或是具有下列性質的二叉搜索樹 它的左右子樹都是AVL樹; 左子樹和右子樹的高度之差簡稱(平衡因子)的絕對值不超過1; 2.AVL樹的實現原理 與二叉搜索樹的節點插入方法相

原创 gdb調試多進程和多線程

一、gdb調試多進程 多線程代碼 2.默認設置下,在調試多進程程序時GDB只會調試主進程。但是GDB(>V7.0)支持多進程的分別以及同時調試,換句話說,GDB可以同時調試多個程序。只需要設置follow-fork-mode

原创 漢羅塔問題(修改版)---遞歸和棧實現

漢羅塔問題是一個非常經典的算法,我們首先來研究一下修改的漢羅塔(簡化步驟),在後面我們將來講述經典的漢羅塔問題。 題目: 修改後的漢羅塔的規則:現在限制不能從最左側的塔直接移動到最右側,必需要經過中間;同時從最右側移動到最左測試

原创 NAT技術與代理服務器

一、NAT技術 1.在瞭解NAT技術之前,我們首先來了解一下什麼是專用互聯網? 專用網互聯網簡稱專用網,是由專用IP地址構成的互聯網或本地網絡; 2.什麼是專用IP地址? 由於IP類型IPv4提供的IP地址已經不夠現如今網絡