原创 遍歷二叉樹(遞歸、棧、隊列)

  本文着重描述鏈式二叉樹的四種遍歷算法,先序、中序、後序遍歷及層序遍歷,具體實現使用遞歸和棧來操作,層序遍歷使用先進先出循環隊列實現。 文章目錄定義二叉樹構造二叉樹先序遍歷中序遍歷後序遍歷層序遍歷測試代碼 定義二叉樹 定義一個鏈

原创 Leetcode[206] 反轉鏈表

題目描述 反轉一個單鏈表 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 題解思路 迭代思路 邊界條件:當只有零個或一個節點時,返回頭節點指針即可; 建立以第一個節點新

原创 希爾排序(C)

希爾排序   希爾排序是一種直接插入排序的改進版,插入排序每次移動一位,移動效率較低,而希爾排序將數組分割成 n 份,每次移動 n 位, 因此相比插入排序要高效。當移動位數n等於1時,等同於直接插入排序(鏈接)。 算法描述 假設:

原创 快速排序(C)

  快速排序算法是基於分治策略的一種算法,其基本思想是取一個基準值,分別從序列的兩端掃描數據,將初始序列劃分成兩份,比基準大的分到右邊,小於等於基準的分到左邊;然後對左右兩邊的區間再次獨立劃分,採用遞歸的方式,重複劃分排序,直到劃

原创 Linux驅動之——WIFI&BT驅動調試

                                                                          WIFI&&藍牙模塊驅動調試   該模塊在kernel 設備樹配置如下: wi

原创 C宏定義的特殊關鍵字

  在分析一些C源碼時,經常會遇到各種宏定義操作,本文即總結一下C語言宏定義中常見的預定義宏、調試宏;宏的條件編譯用法及特殊的宏關鍵字用法。 文章目錄#undef 限定宏的作用域常見預定義宏宏的條件編譯#ifdef 和 #ifnd

原创 vscode搭建C編譯環境

vscode搭建C編譯環境   最近使用 vscode 來搭建C編譯環境,因爲用 vscode 自帶的Leetcode插件來刷題比較方便,踩了一些坑,在此記錄一下搭建過程,親測可用。 安裝vscode 很簡單,官網安裝對應版本即可

原创 chown -R 改不了軟鏈接指向的文件權限?

關於chown命令的奇怪問題   都知道在linux系統中,chown 命令用來修改文件或目錄的屬組,而 chown 後加 -R 參數,則會修改指定目錄即該目錄下的所有文件的屬組。   那麼 chown 命令修改一個軟連接文件的權

原创 eeprom 驅動調試之——硬件原理

                                                                                EEPROM 硬件原理 24c02 引腳排列:                

原创 LeetCode[860] 檸檬水找零 (貪心)

PS: 本題目摘自 LeetCode 860 原題 檸檬水找零,一道貪心算法問題 題目描述 在檸檬水攤上,每一杯檸檬水的售價爲 5 美元。 顧客排隊購買你的產品,(按賬單 bills 支付的順序)一次購買一杯。 每位顧客只買一杯檸

原创 LeetCode[55] 跳躍遊戲 I(貪心)

本題目選自 LeetCode 第 55 題 跳躍遊戲 I ,用貪心算法實現。 題目描述 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例

原创 比一般人更加努力

一個關於天才與普通人的有趣漫畫… 漫畫描述1:   一個普通人每天都很努力,他頭頂上顯示的能力槽也在慢慢地增長。而圖中的另一個天才,則整天不務正業,當然他頭上的能力槽也幾乎沒有增長。 漫畫描述2:   經過了長時間的努力,普通人頭

原创 Shell獲取路徑操作(dirname $0 pwd)

Shell獲取路徑操作   在shell腳本中經常會看到$(cd $(dirname $0); pwd)、basename等操作,本文就來記錄一下 dirname、basename、pwd 的用法及組合使用。 pwd 用法 pw

原创 Git連接遠程倉庫實用指令

                                                                     Git-----連接遠程倉庫的常用指令   接上一篇 Git在本地倉庫的常用指令 ,總結一些項目中遇