原创 【數據結構】二叉樹的遍歷(遞歸與非遞歸)

先序遍歷(遞歸) 遍歷過程 訪問根結點 先序遍歷其左子樹 先序遍歷其右子樹 void PreOrderTraversal(BinTree BT) { if( BT ) { printf("%d", BT

原创 【PHP】無限分類

無限分類,是指從一個最高分類開始,每個子分類都可以分出自己的若干個子分類,可以一直分下去,稱爲無限級分類; 比如一棵樹,從一根樹幹開始,分出多個樹枝,而這些樹枝又分出其他的分支,理論上是可以無限分裂下去的; 再比如,一個家庭可以有

原创 【JavaScript】JS實現HashMap

Hashmap是一種非常常用的、應用廣泛的數據類型。 /** * ********* 操作實例 ************** * var map = new HashMap(); * map.put("key1"

原创 【Git】Git branch和Git checkout常見用法

git branch 和 git checkout經常在一起使用,所以在此將它們合在一起 Git branch 一般用於分支的操作,比如創建分支,查看分支等等, git branch 不帶參數:列出本地已經存在的分支,並且在當前分

原创 【PHP】富文本HTML過濾器:HTMLPurifier使用教程(防止XSS)

在編程開發時安全問題是及其重要的,對於用戶提交的數據要進行過濾,XSS就是需要重視的一點,先說一下什麼是XSS,簡單來說就是用戶提交數據(例如發 表評論,發表日誌)時往Web頁面裏插入惡意javascript代碼例如死循環,瘋狂的

原创 【數據結構】二叉搜索樹

什麼是二叉搜索樹 二叉搜索樹(BST)也稱爲二叉排序樹或二叉查找樹。 二叉搜索樹:一棵二叉樹,可以爲空;如果不爲空,滿足以下性質。 非空左子樹的鍵值小於其根結點的鍵值。 非空右子樹的鍵值大於其根結點的鍵值。 左右子樹都是二叉搜索

原创 【PHP】PHP7 下安裝並使用 xhprof 性能分析工具

該 xhprof 版本是從 https://github.com/longxinH/xhprof 獲取 git clone https://github.com/longxinH/xhprof 安裝 xhprof cd xhpro

原创 【MySQL】MySQL關鍵字作爲列名錶名的處理方式

面試被問到一個問題,假如MySQL中的關鍵字在查詢語句中作爲列明或者表名出現,應該怎麼處理。 例如 select desc from t; 一臉懵逼。尷尬。 於是乎,自己私下做了一個實驗,發現了其中原因,特此分享。 創建t表,包含

原创 【Git】Git常用命令清單

我每天使用 Git ,但是很多命令記不住。 一般來說,日常使用只要記住下圖6個命令,就可以了。但是熟練使用,恐怕要記住60~100個命令。 下面是我整理的常用 Git 命令清單。幾個專用名詞的譯名如下。 Workspace:工作

原创 【Yii2】yii2學習之CSRF驗證

什麼是CSRF CSRF(跨站請求僞造),通過盜用你的身份,發送一些惡意請求,比如更改用戶密碼、刪除賬戶、發送郵件、以你的身份購買商品等。 攻擊原理:用戶A訪問網站B,登錄驗證通過後會在用戶A的瀏覽器中產生登錄B網站的cookie

原创 【版本控制】git,svn,cvs 粗略比較

版本控制已經有很多年曆史了,也出現了很多版本控制解決方案,但是有一些因爲安全性低、不支持跨平臺、不支持併發修改而逐漸淡出了人們的視野。 這篇文章就來比較一下時下最火的三個版本控制工具:git,svn,cvs。 併發修改 多個開發人

原创 【設計模式】觀察者模式

觀察者模式(Observer),當一個對象的狀態發生改變時,依賴他的對象會全部收到通知,並自動更新。 場景:一個事件發生後,要執行一連串更新操作.傳統的編程方式,就是在事件的代碼之後直接加入處理邏輯,當更新得邏輯增多之後,代碼會變

原创 【JQuery】HTML自定義滾動條(mCustomScrollbar)

實現效果如下所示 mCustomScrollbar 是個基於 jQuery UI 的自定義滾動條插件,它可以讓你靈活的通過 CSS 定義網頁的滾動條,並且垂直和水平兩個方向的滾動條都可以定義,它通過 Brandon Aaron

原创 道格拉斯-普克算法(經緯度或座標點抽稀)

起因 最近在做一個車聯網項目,有一個場景是車輛定時上報當前所在經緯度等位置信息上報給平臺,平臺通過web頁面在高德地圖上展示車輛行駛路徑。 由於車輛上報規則是每隔4s上報一次,一個小時也就是900個點,一天也就是21600個點,如果是

原创 【PHP】十進制轉任意2-16進制

題目描述 給定一個十進制數M,以及需要轉換的進制數N。將十進制數M轉化爲N進制數 輸入描述: 輸入爲一行,M(32位整數)、N(2 ≤ N ≤ 16),以空格隔開。 輸出描述: 爲每個測試實例輸出轉換後的數,每個輸出佔一行。如果N大於