資料結構-Stack篇-1
前情提要
這篇文章是資料結構系列的第一篇,主要聚焦於 Stack 的基本概念、應用範圍以及其實現方式。透過深入介紹 Stack 的運作原理、應用場景以及程式實作,本篇內容適合初學者快速掌握 Stack 的核心知識,也為後續進階的資料結構學習奠定基礎。
文章中包含了 Stack 的定義與特性、應用範疇(如括號匹配、DFS、算術表達式轉換等)、以及用陣列與鏈結串列實作 Stack 的具體範例程式碼,旨在讓讀者對 Stack 的理論與實作有全面的認識。
這篇文章是資料結構系列的第一篇,主要聚焦於 Stack 的基本概念、應用範圍以及其實現方式。透過深入介紹 Stack 的運作原理、應用場景以及程式實作,本篇內容適合初學者快速掌握 Stack 的核心知識,也為後續進階的資料結構學習奠定基礎。
文章中包含了 Stack 的定義與特性、應用範疇(如括號匹配、DFS、算術表達式轉換等)、以及用陣列與鏈結串列實作 Stack 的具體範例程式碼,旨在讓讀者對 Stack 的理論與實作有全面的認識。
我最近有遇到一個問題就是我 Windows 10 要使用 share devices 然後給外包廠商上傳檔案在 Guacamole 那麼我知道 Guacamole 有 SFTP 的服務可以串接讓外包廠商上傳檔案,但是中間一直連線失敗有點弄到快爆氣哈哈哈...,但是後面發現滿蠢的哈哈哈哈,廢話不多說開始吧。
這篇文章是資料結構系列的第二篇,主要討論 Binary Tree(二元樹) 的基礎概念與相關理論。今天整理了 Binary Tree 的定義、基本性質、常見類型,以及一些重要的數學性質與推導,像是節點數、樹的高度等。此外,也介紹了二元樹的實現方式(陣列與鏈結串列)和走訪方法,並分享了一些經典範例題的解法,希望幫助讀者快速掌握二元樹的核心知識。
最近因為在補習班上資料結構,所以想說寫一下 blog 有參考幾本 bible
分別有 clrs
、 horowitz
這兩本書來撰寫這篇
blog,內容可能跟 horowitz
的內容比較接近,因為
clrs
這本還是 algo 說的比較多哈哈哈。
在集合論中,直接像(Direct Image)是函數在兩個集合之間映射時所產生的一個重要概念。它描述了如何從一個集合 \(A\) 的子集經過函數映射到另一個集合 \(B\) 的子集中。本篇文章將探討直接像的定義與性質,並說明其在數學中的應用。
這篇文章記錄了在 UVA Online Judge 刷題的過程,挑戰了兩個不同類型的題目,分別是 227 - Puzzle 與 1586 - Molar mass。
[227 - Puzzle] 這是一道模擬操作的題目,目標是在 5x5 的字串陣列中移動空白格,根據指令 (A 上移、B 下移、L 左移、R 右移) 更新陣列的配置。挑戰在於處理輸入格式和確保操作合法性 (不超出邊界)。 本題的重點在於模擬過程是否正確,並輸出最終的字串陣列,若指令導致非法操作,則需輸出錯誤訊息。
[1586 - Molar mass] 這是一道字串解析的題目,要求計算化學式的分子量。需依據化學元素的符號及其後的數字 (若無則預設為 1) 計算權重,最後輸出結果。 難點在於精確解析字串並將權重正確累加,對效能的處理也很重要。
這篇文章是關於 Virtual Judge 刷題的紀錄,主要記錄了解題的過程和心得。在 08/21 的刷題中,挑選了 P2249 這道題目,並使用了經典的 二分搜尋法 (Binary Search) 來解題。文章會分享解題的邏輯、程式碼,以及一些關於該題的細節,幫助讀者了解如何高效地透過二分搜尋法解決問題。
題目要求我們在一個排序的數列中,尋找某些目標數字的首次出現位置。為了達到高效搜尋,程式利用二分搜尋法縮小範圍,並在找到匹配的數字時,記錄它的索引位置。接下來將分享這段程式碼的完整實現與運作流程!
在部署 Django 專案時,雖然可以使用
python manage.py runserver
指令來啟動伺服器,但這樣的做法在處理靜態檔案時效能不佳,尤其是在面對大量訪問時,效能瓶頸會更加明顯。實務上,我們常使用反向代理(reverse
proxy)來提升效能,並避免直接使用 Django 的開發伺服器。Nginx
作為反向代理,不僅可以處理靜態檔案,還能分流請求,提升應用的安全性與效能。
此外,與 .NET Core 可以透過編譯並打包成單一可部署檔案的方式不同,在 Python 環境下,我們需要借助像 uWSGI 這類的工具,作為 Nginx 與 Django 之間的橋樑,以實現高效的應用程式部署。
這篇文章記錄了我今天在 UVA Online Judge 的刷題過程,挑戰了兩道題目,分別是與邏輯判斷相關的題目和簡單的輸入輸出處理題。透過這些題目,練習了模擬操作與字串處理的技巧,以下是解題紀錄與程式碼實現。
這題題目的意思就是我要到 0
就代表了要結束輸入,也就是程式要結束,然後如果 guess[0]
因為他有說範圍 1~9
所以 0
就代表這筆測試資料結束,那麼我們就會知道輸入怎麼做處理,現在剩下邏輯的部份,那我的想法就是分別計算
位置和數字都完全等於的數目,在用矩陣去紀錄哪些已經數字已經被記錄了,如果都沒有被記錄過,guess[i] == key[j]
哪麼我就把它記錄下來處理後就是答案了。
因為有個困擾就是,我常常因為要切不同框架撰寫前後端,所以有時候用的 vscode extension 都會不同,這個問提困擾我很舊,因為每次打開 vscode 就很久,直到有天我發現可以使用 vscode profile 去切割不同的開發環境所需要的 extension,從此我的 vscode 開啟速比以前為管理前快多了...。
我的習慣是我 Default
profile 會用來作為其他 profile
的 base 所以我會裝一些常用的工具在 Default
profile
這樣就可以複製到新的 profile 上然後繼續裝上自己需要使用的
extension。