原创 刪除鏈表的重複節點

劍指Offer系列劍指Offer之刪除鏈表重複節點(T56) 劍指Offer之刪除鏈表重複節點(T56) 題目描述: 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1

原创 使用Handler機制實現簡單的Http異步請求

使用Handler實現簡單的Android異步請求框架 爲了避免卡頓等問題,Android中不允許在子線程中更新UI,這給開發過程中帶來了一點小障礙,爲了解決這個問題,有幾種方法可以使用 1、使用StrictMode強制在子線程中

原创 JDK源碼學習之HashMap的put函數實現

HashMap的put函數 1、首先是計算hash值 使用key的哈希值和key哈希值的低16爲進行按位異或操作,得到hash值 static final int hash(Object key) { in

原创 棧和隊列的學習(Java實現)

棧和隊列的學習(Java實現) 包括棧的實現,使用棧進行編譯器檢查,使用棧結合逆波蘭法和中綴到後綴的轉換進行計算器計算。也介紹了棧幀,此外還有隊列的簡要介紹 3.6 棧ADT 3.6.1 棧模型 棧是限制插入和刪除只能在一個位置上

原创 經典的排序算法原理和實現

第七章 排序 包括插入排序、希爾排序、堆排序、歸併排序和快速排序的設計與實現 7.1 基礎知識 被排序的對象屬於Comparable類型。在這種條件下的排序叫做基於比較的排序。在默認排序不能滿足需要求的情況下,可以用Compar

原创 樹的學習Part2(Java實現)

樹的學習Part2(Java實現) 包括樹的各種遍歷方法以及BST的實現 4.2.3 二叉樹的遍歷與重建 遞歸和非遞歸實現 public class Tree<T> { class BinaryNode<T>{

原创 優先隊列(堆)

優先隊列(堆) 6.1 模型 優先隊列是允許至少下列兩種操作的數據結構:insert(插入),deleteMin(刪除最小者),這兩個操作相當於普通隊列的queue和dequeue。 6.2 簡單實現 實現優先隊列有很多的方法,例

原创 算法筆記1:實現任意長數字相加

使用Java實現任意長數字相加 思路:模擬加法的進位操作,從後遍歷兩個數組,設置用於兩個當前數組位置的標誌位。爲了這樣遍歷,需要使用較長的那個字符串,作爲for循環的最大值。當兩個數字長度一致時,可能進位也可能不進位,要分情況討

原创 樹的學習Part1(Java實現)

樹的基礎和使用二叉樹把後綴表達式轉爲中綴樹 4.1 基礎知識 4.1.1 樹的定義 按照遞歸的方式定義樹。一棵樹是一些節點的集合。這些集合可以是空集。如果不是空集,則樹由稱爲根() 的節點r以及0個或者多個非空的(子)樹T1,T

原创 【C#開源】BCom多功能串口調試助手

 又有一段時間不更新了,這次爲大家帶來的是我最新開發的BCom多功能串口調試助手,在支持串口功能的前提下,又加入了一些好用的小工具,如截圖工具,記事本,計算器,畫圖等工具,也有一些別的小工具大家可以探索用,是嵌入式工程師的不二之選! 爲了

原创 強大且免費的思維導圖,流程圖繪製工具freedraw,替代visio,mindmanager,xmind

​如今流程圖和思維導圖的應用越來越廣泛,尤其是製作說明書,寫論文時難免會用到相關的繪圖工具,如Visio,MindManager等,但是,衆所周知,這些軟件昂貴且臃腫,由於某個M姓代理商的原因,能找到的都是僞免費版.同時,這些軟件也不好上

原创 在Ubuntu下安裝原生百度網盤(最新的百度網盤Linux版)

剛把我的生產環境完全換到Ubuntu,還裝上了個wine版百度網盤,這下好了,很方便,百度終於做了件良心事,下面就看騰訊表態了。 更新一下在Ubuntu上的安裝方法(root權限下) 注意事項:涉及到絕對路徑的地方根據你自己實際情況來修改

原创 C++類的初步探究

第一篇博文,記錄自己的成長         以前有過C/Java的編程經驗,現在要學習一些C++的東西。不同語言的語法都是相通的,不同的地方在語言自己的特性。 有人說C++是C with class  再加上STL,粗略的看了一下,決定從