iT邦幫忙

資料結構相關文章
共有 162 則文章
鐵人賽 Software Development DAY 12

技術 [資料結構] 二元樹走訪 (Binary Tree Traversal)

在介紹完了二元樹,今天就來談談二元樹讀取和儲存的方式。二元樹裏的資料其實不一定是依照大小或從左到右排序的,可能依照輸出的方式不同,結果也會不盡相同。 目前理論上...

鐵人賽 Software Development DAY 24

達標好文 技術 [資料結構] 雜湊 (Hash)

很多人以為雜湊就是加密,但雜湊不是加密! 雜湊不是加密! 雜湊不是加密! 雜湊是因為他的特性很適合來做加密的運算,但真的不等同於加密! 雜湊 (Hash) 雜...

鐵人賽 Software Development DAY 14

技術 [資料結構] 堆積 (Heap)

堆積 (Heap),是一種特殊的完全二元樹,而堆疊不一樣,是完全不同的概念。有分兩種,一種是最小堆積,另一種是最大堆積。 最小堆積 如下圖,完全二元樹所有的父節...

鐵人賽 Software Development DAY 6

技術 [資料結構] 陣列 (Array) & 串列 (Linked List)

好啦,討論完幾個演算法後,還是得面對最重要的核心,資料結構。(頓時有種醜媳婦見公婆的概念 該來的還是要來~) 其實資料在程式語言中有很多種型態,像是 int (...

鐵人賽 Software Development DAY 13

技術 [資料結構] 二元搜尋樹 (Binary Search Tree)

講了二元樹的走訪,接下來要進入搜尋了,尋找森林深處的密寶~ 先來說說 二元搜尋樹 (Binary Search Tree),又稱 有序二元樹 或 排序二元樹。如...

鐵人賽 Software Development DAY 9

技術 【Day9】[資料結構]-雜湊表Hash Table

雜湊表(Hash Table)又稱哈希表,是透過雜湊函式(Hash Function)來計算出一個鍵(key)與值(value)所對應的位置,進而建立雜湊表格,...

鐵人賽 Software Development DAY 5

技術 Day5-陣列(Array)和鏈結串列(Linked List)的比較

在學習完陣列和鏈結串列之後呢,我們來把它們做統整比較吧!不過首先要先介紹一個網站,裡面整理了各式資料結構的時間複雜度並整理成表格。網站連結如下: https:/...

鐵人賽 影片教學 DAY 1

達標好文 技術 資工系在學些什麼,有用嗎?

大家好: 我是紫楓,之前曾經在巴哈姆特發表一個關於軟體工程師,問都給問的文 其中有很多個問題是關於 我是學生,我該學什麼? 我想轉職,我該學什麼? 我想精益求...

鐵人賽 Software Development DAY 4

技術 Day4-來了解鏈結串列(Linked List)並實作它吧!

Linked List 鏈結串列是一種常見且基礎的資料結構,我們可以基於 Linked List 去建立 Queue、Stack 等資料結構。 Linked...

鐵人賽 Software Development DAY 11

技術 [資料結構] 二元樹 (Binary Tree)

接續昨天的樹。二元樹 (Binary Tree) 的特點就是每個節點最多有兩個兒子,或者是說每個節點最多有兩棵子樹。 二元樹中還有兩種特殊的種類: 滿二元樹...

鐵人賽 Software Development DAY 21

技術 [資料結構] 圖 (Graph)

圖 (Graph),在資料結構上指的是點和點之間的關聯的東西,並不是數學定義上的兩點成一線,三點成一面的那種圖。一張圖由數條邊(Edge)和數個點(Vertex...

鐵人賽 Software Development DAY 7

技術 [資料結構] 佇列 (Queue)

經過昨天介紹的 串列 (Linked List),今天來講一個串列的延伸,佇列 (Queue)。佇列一樣有著串列的特性,每一筆元素本身同時包含著下一筆元素的位置...

技術 [完結] 總整理 + 後記

資料結構 Day 6 - 陣列 (Array) & 串列 (Linked List) Day 7 - 佇列 (Queue) Day 8 -...

鐵人賽 Software Development DAY 3

技術 【Day3】[資料結構]-鏈結串列Linked List

鏈結串列(Linked List)常用來處理相同類型資料,在不連續的記憶體位置,以隨機的方式儲存,由於不用事先宣告一塊連續記憶體空間,所以較不會造成記憶體的浪費...

鐵人賽 Software Development DAY 10

技術 Day10-來介紹遞迴(Recursion)吧!

遞迴種類 遞迴分為直接遞迴和間接遞迴兩種:直接遞迴: 直接在函式內再次呼叫本身函式 function fn1() { fn1(); } 間接遞迴: 函...

鐵人賽 Software Development DAY 22

技術 [資料結構] 圖的深度優先走訪 (Depth-first Search )

昨天介紹了各式各樣的圖,今天就來討論圖的搜尋。 之前有提過深度優先搜尋,是用程式碼遞迴的概念,一層一層的我裡面找出所有可能。但之前的資料是線性的,那如果是圖的話...

鐵人賽 Software Development DAY 27

技術 Day27-解題-Caesar Cipher 凱薩密碼

今天要解的題目是凱薩密碼,凱薩密碼也稱為凱撒加密,它會將一串明文的所有字母順序經過一定數字的偏移後轉為密文。 例如有一串字母 ABCD,分別是英文26個字母中的...

鐵人賽 Software Development DAY 10

技術 [資料結構] 樹 (Tree)

分得出來兩張圖片的差別嗎?第一張,我們稱為 樹 (Tree) ,第二張是所謂的迴路,屬於一般的無相圖。 樹有幾個特性: 不包含迴路。 一棵樹中的任意兩個節點...

鐵人賽 Software Development DAY 14

技術 【Day14】[資料結構]-二元樹走訪Binary Tree Traversal

二元樹走訪或稱二元樹遍歷,簡單來說就是走訪樹中各節點,轉化為線性關係。 主要分成兩種策略方式 深度優先搜尋(Depth-first Search,DFS)...

鐵人賽 Software Development DAY 2

技術 【Day2】[資料結構]-陣列Array

陣列(Array)是一種常見的資料結構,常用來處理相同類型的有序資料,並存放在連續的記憶體空間中。但由於會先宣告固定記憶體空間,容易造成記憶體浪費。 在讀取與修...

鐵人賽 Software Development DAY 9

技術 [資料結構] 堆疊 (Stack) - 2

河內塔 (Tower of Hanoi) 其實也是個古老的題目,最常被用來解釋什麼叫做堆疊。 河內塔最早發明這個問題的人是法國數學家愛德華·盧卡斯。 傳說越南...

鐵人賽 影片教學 DAY 5

技術 "課綱" 從零開始搞懂,寫程式, 資料結構, 演算法, 物件導向

這一集沒什麼ho就只是課綱,方便大家建立接下來 有點硬的內容的架構 不過請放心,我講的都會讓他很簡單的 基礎語法 變數 資料型態 運算符號 陣列 Condi...

達標好文 技術 Week11 - 讓遞迴的Stack永遠不會爆炸的「尾遞迴」真的有那麼神奇嗎 - 尾遞迴篇 [高智能方程式系列]

本文章同時發佈於: Medium iT邦幫忙 大家好,最近因為有一位朋友提到尾遞迴,說這個優化技術「可以讓遞迴跑個一百萬次都沒問題」,驚呆的我,就花...

鐵人賽 Software Development DAY 8

技術 [資料結構] 堆疊 (Stack)

堆疊 (Stack) 的特性就是 先進後出 (First In Last Out, FILO)。舉個例子,比如說有一個長深桶子,我們依序放入大小剛好的 1 到...

鐵人賽 Software Development DAY 7

技術 【Day7】[資料結構]-佇列Queue

佇列(Queue)是一種排列結構,雖然與堆疊類似,但佇列在新增與刪除資料必須在不同端進行,前端(front)能夠刪除(dequeue)與查看(peek)資料,尾...

鐵人賽 Software Development DAY 11

技術 Day11-來介紹資料結構-樹(Tree)吧!

今天要介紹的是樹,大致的樣子如下圖,其中樹的每個元素都稱為節點,樹最上方的節點稱為根節點,而節點之間上層節點為下層節點的父節點,下層節點為上層節點的子節點,如果...

鐵人賽 Software Development DAY 24

技術 Day24-動態規劃-0/1背包問題

不知不覺開賽也來到第24天了,在前面的23天介紹了資料結構/排序搜尋演算法之後,剩下的7天每天都會用來解一道題目,那麼今天要探討的是一個非常經典的 Knapsa...

鐵人賽 Software Development DAY 2

技術 Day2-陣列操作常用的20個函式

這次的文章可以說是JavaScript中,陣列相關操作函式大全了,總共有20個函式,就請準備筆記本好好記錄下吧! 1. 合併陣列 - concat() 其實字串...

鐵人賽 Software Development DAY 1

技術 【Day1】資料結構 + 演算法

程式設計中資料結構與演算法是非常重要的兩大項目,彼此之間都會影響程式的運作。 資料結構 電腦在儲存資料時,會儲存在電腦的記憶體中,而資料可以有不同的儲存與組織...

鐵人賽 Software Development DAY 17

技術 [守] 你需要的是資料結構, 演算法與物件導向概念的加持

之前有說過我們團隊每週會刷leetcode,幾乎1000題內都是在考資料結構+演算法,資料結構像是你身上裝備的武器,而演算法則是你真正的武功。而物件導向/設計模...