原创 二叉樹算法三之哈弗曼樹和編碼

   這一節介紹哈夫曼樹和哈弗曼編碼,其中構造哈弗曼樹的步驟如下 1.根據給定的n個權值{ Wl,響,…,Wn }構成n棵二叉樹的集合F={Tl,T2,…Tn},其中每棵二叉樹Ti 中只有一個帶權爲Wi 根結點,其左右子樹均爲空。 2.

原创 棧和隊列算法一之棧的基本操作

    本章知識介紹數據結構書上的第三章棧和隊列,其中棧的知識重點放在應用上,因爲基本操作較簡單,而且c語言和c++都有現成的操作棧和隊列的stack<>和queue<>。     棧是限定僅在表尾進行插入或刪除操作的線性表。表尾端稱爲棧

原创 棧和隊列算法三之隊列的基本操作

   本節知識介紹與棧相反的一種相反的數據結構,隊列,隊列是一種先進先出(FIFO)的線性表。允許插入的一端稱爲隊尾,允許刪除的一端稱爲對頭,隊列只允許在對頭刪除元素和在隊尾插入元素,棧和隊列都是操作受限的線性表。    上一節用順序存儲

原创 二叉樹算法一之創建和遍歷

  按照數據結構的課本,棧和隊列的下一章知識應該是串,但是c語言中對於字符串都是字符數組的概念,且基本的方法都已經封裝了,對於c++來說,直接有string這種數據類型,唯一能講的應該是KMP算法, 但是沒有研究過,數組和廣義表也用的很少

原创 Love to My Parents

    Today is the first day of May. It'll be one month of a year after my graduation. I would ask myself what did I do i

原创 查找算法二之哈希查找

   以前對於哈希的用法就是學習數據結構的時候,給你一堆數,然後會求哈希表和給定關鍵字分析查找成功的過程和查找失敗的過程的這樣的題。    學習了並敲了代碼之後才明白爲什麼哈希是屬於查找這一章的,我認爲哈希的想法纔是最重要的,代碼並不是多

原创 鏈表算法三之靜態鏈表

   本節知識來源於大話數據結構,代碼基本上也是參考這本書,引用書上原文,對於早期的編程語言,沒有指針的概念,怎麼實現鏈表,靜態鏈表的想法就是用數組來模擬指針,其實我感覺靜態鏈表的思想很重要,而使用靜態鏈表基本很少,比如並查集的思想我感覺

原创 查找算法一之順序查找 二分查找

    上一節介紹了常見的排序算法,今天這一節介紹基本的查找算法,本次查找算法涵蓋了順序查找、二分查找和哈希,其他的動態查找如二叉排序樹、平衡二叉樹和B樹,由於涉及到樹的相關基本操作,暫時還沒有研究,所以這個以後看情況是否補充進來。  

原创 二級指針的疑惑

   在線索二叉樹和用後繼指針遍歷雙向鏈表時,都是用二級指針解決了問題,但是爲什麼用一級指針就會返回NULL呢,咋們先看下面這道題 void test(int *p){ cout<<p<<" "<<endl; int a=1; p

原创 鏈表算法六之多項式相加

    按照數據結構的課本,本節知識將介紹多項式的一些操作,這裏只實現了多項式相加,多項式的數據結構就是一個係數,一個指數,一個next指針,如下: struct Poly{ float coef; //係數 int expn

原创 2014.4.22 阿里面試

   下午剛剛從阿里霸面回來, 趁着還沒忘記,趕緊寫個筆記,我面試的崗位是java研發,先總結下阿里面試官問的問題    一坐下來,面試官直接搞了一句,咋們直接寫代碼吧,我當時就不淡定了,然後把鉛筆和草稿紙給了我,請聽題 1.他說AB有

原创 二叉樹算法二之中序線索

   在介紹線索二叉樹之前,我們需要知道對於一個有n個結點的二叉樹,每個結點有指向左右孩子的兩個指針域,所有一共有2n個指針域。而n個結點一共有n-1個分支線數,則存在2n-(n-1)=n+1個空指針域,而這裏介紹的都是指中序線索二叉樹。

原创 鏈表算法二之單鏈表逆置

   單鏈表逆置的意思就是把原來的所有元素逆序輸出,比如遍歷的元素順序是4 3 2 1,逆置輸出就是1 2 3 4。    這題是一道非常常見的面試題,同學去阿里面試C語言組的時候,就問到了這題,要求寫出程序。    當我聽到這題時,單鏈

原创 棧和隊列算法二之棧的應用

   棧的應用這一節知識,按照數據結構的課本,一共有5個題:    1.數制轉換  2.括號匹配的檢驗 3.行編輯程序  4.迷宮求解  5.表達式求值    其中括號的匹配檢驗和表達式求值中對於沒有括號的四則運算,請分別參考九度題目11

原创 圖算法二之DFS

    圖的DFS就是從圖中某個頂點v出發,訪問此頂點,然後從v的未被訪問的鄰接點出發深度優先遍歷圖,直至圖中所有和v有路徑想通的頂點都被訪問到。 還是給個例子把,圖形直觀 其實圖的DFS代碼還是非常短的,關鍵是理解怎麼遍歷的,和BFS