原创 Java數據結構-線性表之鏈表應用-檢測鏈表是否有環

  如何檢測一個鏈表是否有環?這個是一個出現頻率較高的面試題。   如下是一個含有環的鏈表。 (圖片來自http://www.nowamagic.net/librarys/veda/detail/2245 一個有很多關於數

原创 Java數據結構-串及其應用-KMP模式匹配算法

串(string)是由零個或多個宇符組成的有限序列,又名叫字符串。 定義的解釋:   串中的字符數目n稱爲串的長度,定義中談到“有限”是指長度n是一個有限的數值。   零個字符的串稱爲空串(null string),它的長度爲

原创 powermock、hadoop、Concordion、Java 8教程

大牛教程走一波,有興趣的可以加羣286081824 : powermock實戰教學 https://www.douban.com/note/590646042/ hadoop平臺下的數據導入導出工具Sqoop https:

原创 Java數據結構-線性表之單鏈表應用-單鏈表合併

問題詳細描述:   將遞增有序A、B兩鏈表歸併成一個按元素值非遞增(允許有相同值)有序的鏈表C。 解題思路:   利用A、B兩表遞增有序的特點,依次取出當前結點進行比較,將當前值較小者摘下,插入到C表的頭部,由於採用的是頭插法,最

原创 Java數據結構-線性表之單鏈表應用-重複節點的刪除

整個問題的解題思路如下: 建立指針p,用於遍歷鏈表; 建立指針q,q遍歷p後面的結點,並與p數值比較; 如果q與p值相等,則刪除q。如果q有後繼節點,則將q前驅節點和q後繼節點鏈接起來;否則直接開始下一輪遍歷。 Java代碼實

原创 Java數據結構-線性表之隊列

隊列(Queue)的定義:只允許在一端進行插入另一端進行刪除操作的線性表。允許插入的一端稱爲隊尾(rear) ,允許刪除的一端稱爲隊頭(front)。 具有“先進先出”特點。 隊列也是線性表,所以也存在順序結構和鏈式結構。 順序隊

原创 編程之美-從無頭單鏈表中刪除節點

第三章 3.4 從無頭單鏈表中刪除節點 問題詳細描述:   假設有一個沒有頭指針的單鏈表。一個指針指向此單鏈表中間的一個節點(不是第一個,也不是最後一個),請將該結點從單鏈表中刪除 解題思路:   按照題意需要刪除A結點,

原创 Java數據結構-線性表之單鏈表應用-單鏈表的逆置

單鏈表的逆置,就是將現有單鏈表中的元素的順序倒置過來。 之前提過單鏈表的整表創建,那裏曾說過兩種方法:頭插法和尾插法; 在我的Java版本的LinkedList中,添加方法使用的是尾插法。 而單鏈表的逆置正好是利用頭插法來進行

原创 算法分析-如何實現字符串的反轉

問題:將一個句子中的單詞進行反轉,例如:“how are you”,進行反轉後的結果爲“you are how”。 解題思路:將這個句子進行兩次反轉操作即可。 1)對整個字符串進行字符反轉,反轉結果“uoy era woh”;

原创 Java數據結構-線性表之棧的應用-遞歸及其應用

  遞歸函數的定義:把一個直接調用自己或通過一系列的調用語句間接地調用自己的函數,稱做遞歸函數(遞歸函數必須有一個結束的條件,以免陷入無窮盡的遞歸中)。 迭代和遞歸的區別是:  (1).迭代使用的是循環結構,遞歸使用的是選擇結構

原创 Java數據結構-二叉樹及其遍歷

二叉樹的定義:n(n>=0)個結點的有限集合,該集合或者爲空集(稱爲空二叉樹),或者由一個根結點和兩棵互相不相交的、分別稱爲根結點的左子樹和右子樹的二叉樹組成。 二叉樹的特點: 0<=度<=2; 左右子樹是有順序的,不能顛倒;

原创 Java數據結構-線性表之雙向鏈表

雙向鏈表的定義:在單鏈表的基礎上,給每個節點增加一個指針域,用來指向該節點的前驅節點,這樣形成的鏈表稱之爲雙向鏈表。 利用空間換時間。 整個雙向鏈表的形式如圖所示: 下面就摘了《大話數據結構》的插入操作演示: 需要注意的

原创 Java數據結構-二叉查找樹續以及平衡二叉查找樹

  前面一篇文章講到了二叉查找樹的實現,其中的插入操作是使用非遞歸方法實現的,這裏再增加一種遞歸實現插入的操作,Java代碼如下,建議增加到前一篇文章對應的FOBinarySearchTree.java中; /** * @TO

原创 Java數據結構-線性表之循環鏈表

循環鏈表的定義:將單鏈表的尾節點的空指針改爲指向頭結點的指針,這樣的單鏈表就變成單循環鏈表了,也叫循環鏈表。 下面摘抄了《大話數據結構》中的一段分析。如下圖: 解釋: 循環鏈表裏面的頭結點和單鏈表裏面的頭結點是一樣的,都是爲

原创 LeetCode173-Binary Search Tree Iterator

LeetCode 173 : Binary Search Tree Iterator Implement an iterator over a binary search tree (BST). Your iterator wi