原创 數據結構基礎(19) --堆與堆排序

完全二叉樹   首先讓我們回顧一下完全二叉樹的兩個性質:   性質1:具有n個結點的完全二叉樹的深度爲[logn](向下取整)+1。   性質2:若對含 n 個結點的完全二叉樹從上到下且從左至右進行 1 至 n 的編號,則對完全二叉樹中任

原创 數據結構基礎(11) --循環鏈表的設計與實現

循環鏈表:最後一個結點的指針域的指針又指回第一個結點的鏈表;     循環單鏈表與單鏈表的區別在於:表中最有一個節點的指針不再是NULL, 而改爲指向頭結點(因此要對我們原來的MyList稍作修改), 從而整個鏈表形成一個環.    

原创 數據結構基礎(9) --單鏈表的設計與實現(2)之高級操作

鏈表的鏈接:     將第二條鏈表的所有內容鏈接到第一條鏈表之後, 其完整實現代碼與解析如下: [cpp] view plaincopy //鏈表的鏈接  template <typename Type>  void MyLis

原创 數據結構基礎(6) --順序棧的設計與實現

棧是一種只允許在一端進行插入或刪除操作的線性表.其特點爲:先進後出(FILO)/後進先出(LIFO);   棧 VS. 隊列     棧和隊列都是動態集合, 但在棧中, 可以去掉的是最近插入的那一個,:棧實現了一種後進先出(last-in

原创 數據結構基礎(5) --歸併排序

歸併排序的基本思想:     將兩個或兩個以上的有序子序列”歸併”爲一個有序序列:假定待排序表含有n個記錄, 則可以看成是n個有序的子表, 每個子表長度爲1, 然後兩兩歸併, 得到[n/2]個長度爲2或1的有序表,; 再量量歸併, ...

原创 數據結構基礎(20) --圖的存儲結構

圖的結構定義     圖是由一個頂點集 V 和一個弧集 E構成的數據結構。      Graph = (V , E )    其中,E = {<v,w>| v,w∈V 且 P(v,w)} <v,w>表示從 v 到 w 的一條弧,並稱 v 

原创 數據結構基礎(22)--紅黑樹的設計與實現(上)

紅黑樹是一種自平衡的二叉查找樹,是在計算機科學中用到的一種數據結構,典型的用途是實現關聯數組(C++ STL 中的map/set)。它是在1972年由Rudolf Bayer發明的,他稱之爲"對稱二叉B樹",它現代的名字是在 Leo J.

原创 數據結構基礎(21) --DFS與BFS

DFS     從圖中某個頂點V0 出發,訪問此頂點,然後依次從V0的各個未被訪問的鄰接點出發深度優先搜索遍歷圖,直至圖中所有和V0有路徑相通的頂點都被訪問到(使用堆棧).   [cpp] view plaincopy //使用鄰

原创 數據結構基礎(4) --快速排序

快速排序是最流行的,也是速度最快的排序算法(C++ STL 的sort函數就是實現的快速排序); 快速排序(Quicksort)是對冒泡排序的一種改進。由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的

原创 數據結構基礎(14) --鏈式隊列的設計與實現

  鏈式隊列是基於單鏈表的一種存儲表示, 其形狀如下圖所示:       (隊列的隊頭指針指向單鏈表的第一個結點, 隊尾指針指向單鏈表的最後一個結點, 注意沒有無用的空[頭/尾]節點)     用單鏈表表示的鏈式隊列特別適合於數據元素變動

原创 數據結構基礎(3) --Permutation & 插入排序

Permutation(排列組合) 排列問題: 設R = {r1, r2, ... , rn}是要進行排列的n個元素, Ri = R-{ri}; 集合X中元素的全排列記爲Permutation(X), (ri)Permutation(X)

原创 數據結構基礎(15) --基數排序

  基數排序是一種藉助“多關鍵字排序”的思想來實現“單關鍵字排序”的內部排序算法。 實現多關鍵字排序通常有兩種作法:    最低位優先法(LSD)     先對K[0]{基數的最低位}進行排序,並按 K(0) 的不同值將記錄序列分成若干子

原创 程序員的十個層次

看到了這篇很棒的文章,對我的感觸頗大,分享給大家,部分內容甚至會顛覆你的世界觀,不得不佩服該作者的卓識遠見,當然,在現有的科學內,不能證明它是正確的,也不能證明它是錯誤的。 這也是一個技術類程序員的發展方向,究竟可以發展到哪個層次,就要看

原创 Java常見面試題

雖然簡單,但挺實用的,基礎要學好。 1.  Java中sleep和wait的區別 ① 這兩個方法來自不同的類分別是,sleep來自Thread類,和wait來自Object類。 sleep是Thread的靜態類方法,誰調用的誰去睡

原创 歲月劃過生命線——大三上

        轉眼就到了大三,成爲名符其實的學長了,感覺大學過了一半,但何止是一半,感覺大學都快要結束了的節奏。         大三可以說是最重要的一個時期,要爲自己的人生做規劃打算,前面的學習都只是積累,現在快要到了衝刺爆發,產生質