原创 HTTP網絡協議(四)

確保Web安全的HTTPS HTTP存在三個比較明顯的缺點: 通信使用明文(不加密),內容可能會被竊聽。 不驗證通信方的身份,因此有可能遭遇僞裝。 無法證明報文的完整性,所以可能已遭篡改。 儘管HTTP協議中沒有加密機制,但可

原创 森林

森林是n>=0個互不相交的樹的集合,如:二叉樹刪除一個根,就可以轉換爲森林。 如果T1,….Tn是一個森林,則對應於該森林的二叉樹記爲B(T1,…..,Tn),那麼就有以下定義: 若n=0,森林就爲空。 根爲森林中第一顆樹T

原创 二叉樹的其他操作

二叉樹一個較實用的操作就是二叉樹的複製,而二叉樹的複製可以在後序遍歷基礎上實現。 代碼實現: //二叉樹的複製操作 tree_pointer copy(tree_pointer original) { if(origina

原创 尋找最大的K個數

編程之美有一道考察多種排序的題目,題目如下: 有一個長度爲N的無序數組,假定其中的每一個元素都各不相等,求其中最大的K個數。 作者對於此題目結合各種排序算法給出了五種解法思路。 解法一: 使用快速排序或堆排序對它們元素進行

原创

完全圖是具有最多邊數的圖,一個具有n個頂點的完全無向圖,其邊數爲n(n-1)/2,而一個具有n個頂點的完全有向圖,其邊數爲n(n-1). 一條簡單路徑是指路勁上除了起點和終點可能相同外,其餘頂點都互不相同。 在無向圖G中,如果

原创 表驗證

通常,我們需要比較表來驗證他們是否相同,或者找出相異的元素,因此表驗證問題實際上就是把一個表的每個關鍵字作爲待查關鍵字,對另一個表進行重複查找,這裏可以用隨機表和有序表來設計表驗證算法,假設有兩個表list1和list2,其關鍵字

原创 順序查找

假定有一個表list和一個待查找關鍵字searchnum,要找到表中關鍵字與 searchnum相匹配的記錄,如果表中list有n個記錄,且list[i].key表示記錄i的關鍵字值,可以通過依次檢查關鍵字值list[0].key

原创 最小生成樹

一顆帶權無向圖的生成樹的代價是該生成樹中所有邊的代價之和,最小代價生成樹就是一顆代價最小的生成樹,構建無向圖的最小生成樹就是採用貪心算法,不過對於最小生成樹問題,需滿足以下約束條件: 只能使用圖中的邊 只能使用恰好n-1條邊 不

原创 HTTP網絡協議(五)

主動攻擊:是指攻擊通過直接訪問Web應用,把攻擊代碼傳入的攻擊模式,該模式是直接針對服務器上的資源進行攻擊,因此攻擊者需要能夠訪問到那些資源,例如:SQL注入攻擊和OS命令注入攻擊。 被動攻擊:是指利用圈套策略執行攻擊代碼的攻擊

原创

最大堆:是指在一顆完全二叉樹中,一個結點的關鍵值都不小於其兒子結點的關鍵字值,既滿足(parent.value>=parent->left_child.value&&parent.value>=parent->right_chil

原创 線索二叉樹

二叉樹在連接存儲表示中,空鏈的數目是大於非空鏈的數目,即在2n個空鏈中,有n+1個是空鏈,如果利用這些空鏈來指向二叉樹其他結點的指針,這結點稱爲線索,具體建立線索樹過程: 如果結點的左兒子ptr->left_child爲空,則在

原创 不要被階乘嚇到

編程之美有一道關於階乘的題目: 1給定一個整數N,那麼N的階乘等於N!,末尾有多少個0呢,例如N=10,N!=3628800,N!的末尾有兩個0 2求N!的二進制表示中最低位爲1的位置。 階乘定義: n!={1n(n−1

原创 構造數獨

編程之美有一道關於深度搜索和回溯應用的題目——構造數獨: 數獨的棋盤是由九九八十一個小方格組成的。玩家在每個小格子中,分別天上1至9的任意一個數字,讓整個棋盤每一行,每一列,以及每一個3*3的小矩陣中的數字都不重複。 作者給兩

原创 二分法查找(折半查找)

順序查找並沒有對錶中的關鍵字域的順序做出任何假設,與順序查找不同,在折半查找中,表中的記錄是按關鍵字域有序排列的,其比較會出現下面三種結果: searchumn< list[middle].key,此時,無需考慮位於list[

原创 二叉查找樹

雖然在需要優先級隊列的應用程序中,堆非常合適,但它並不適用刪除任意元素的應用,從具有n個元素的堆中刪除任意元素的時間開銷爲O(n),並且查詢任意元素的時間開銷也是O(n),因此當進行插入,刪除和查找操作,二叉查找樹的性能就非常的適