原创 廣義表(非線性結構)

廣義表        廣義表是一種非線性的數據結構,是一種較爲簡單的數據結構,是線性表的擴展,是一個由n個元素組成的序列。實現廣義表主要是利用遞歸,將其分爲子問題來進行解決。下面是一些常見類型的廣義表:1)A = ();         

原创 linux系統中‘find’的詳細用法

            “find”指令是linux系統下較爲常用的指令,它常見的用法我們也需要掌握,下面主要是對‘find’指令的常見用法作一下總結,希望能夠對其他人有所幫助。        在linux系統下用"ls"指令查看目錄如下

原创 平衡搜索樹—AVLTree

       AVL是平衡搜索二叉樹,它的主要特點在於:(1)左子樹和右子樹的高度差絕對值<1,(2)樹中的每個子樹都是AVL樹,(3)每個節點都有一個平衡因子(-1、0、1),平衡因子的大小等於右子樹的高度減左子樹的高度      下面

原创 數據結構—各類‘排序算法’實現(下)

       在上一篇博客中,主要是實現各種的排序算法,並針對一些算法進行了優化的處理,下面主要討論一下非比較排序的算法(計數排序、基數排序),同時並對各種排序算法的性能、時間複雜度、空間複雜度、優缺點、以及適用場景做總結分析。1.計數排

原创 數據存在?-‘布隆過濾器’

       布隆過濾器是一種能夠在大量數據中判斷數據是否存在的算法。它實際上是一個很長的二進制向量和一系列隨機映射函數。布隆過濾器可以用於檢索一個元素是否在一個集合中。它的優點是空間效率和查詢時間都遠遠超過一般的算法,缺點是有一定的誤識

原创 二叉搜索樹—RBTree(紅黑樹)

       紅黑樹又稱二叉搜索樹,它主要是通過紅和黑兩種顏色(red、black)來標識節點。通過對任何一條從根節點到葉子節點路徑上的節點顏色進行約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,所以說:紅黑樹是近似於平衡的。■下面是紅黑樹

原创 C++‘異常’處理機制

        在C++的發展過程中,爲了實際的需要,引入了異常處理機制。程序中常見的錯誤:語法錯誤和運行錯誤,語法錯誤一般都是在編譯時候發現的,編譯器基本上都會報出錯誤的具體位置,因此這類錯誤一般都是比較好修改,運行錯誤一般不容易進行調

原创 面試題——棧與隊列的應用(下)

棧與隊列的應用       在“棧與隊列的應用(上)”中,通過討論兩個隊列實現一個棧和兩個棧實現一個隊列這兩個問題,我們對棧和隊列也有了更深的瞭解,下面我們主要來討論以下兩個面試中常常會遇到的問題:1)一個數組實現兩個棧2)實現一個棧,能

原创 面試題—鏈表的‘部分’翻轉

問題:         給出一個單鏈表(不帶頭節點)和一個數K,請翻轉此單鏈表?例如:1->2->3->4->5       k = 0;   翻轉過後:1->2->3->4->5          1->2->3->4->5      

原创 網絡相關協議要點

TCP協議:(3次連接,4次釋放)     TCP協議是面向連接,可靠的傳輸層協議,是基於全雙工通信,並且是基於字節流的。 (1)保證傳輸數據可靠性機制:      a:定時器:當TCP發出一個報文段,會啓動一個定時器,等待目的端確認收到

原创 文件壓縮(小項目)

      Huffman樹,又稱爲最優二叉樹,是加權路徑最短的二叉樹。Huffman樹的構建利用到貪心算法。 【貪心算法】       貪心算法是指在問題求解時,總是做出當前最好的選擇,也就是說貪心算法做出的不一定是全局的最優解,但是

原创 智能指針(模擬實現AutoPtr、ScopedPtr、SharedPtr)

        模擬實現AutoPtr、ScopedPtr、SharedPtr        智能指針實際上就是能夠智能化的管理動態開闢空間的內存釋放問題,C++中引入智能指針,很大一方面是當我們在動態開闢空間時,由於一些疏忽,或者說是對

原创 大數運算(小項目)

大數運算我們都知道變量都有一個數據類型,每個數據類型都有自己所表示的範圍,若當數據超過這個類型所表示的範圍,就會出現錯誤,我們稱這種現象叫做“溢出”。當然這樣就要求每個變量的地址中所存儲的數據不能夠超過數據類型所表示的範圍。整形int的表

原创 ‘信號’基本概念總結

      生活中有許許多多的信號,能夠反映給人類,人類能夠產生相應的行爲。當我們使用鍵盤給計算機一個信號,計算機也會相應的產生一系列的行爲。在linux系統中,使用kill -l命令能夠查看系統中所有的信號如下:      其中:系統中

原创 數據結構—各類‘排序算法’實現(上)

      數據結構中的排序算法分爲比較排序,非比較排序。比較排序有插入排序、選擇排序、交換排序、歸併排序,非比較排序有計數排序、基數排序。下面是排序的具體分類:1.直接排序         主要思想:使用兩個指針,讓一個指針從開始,另一