雜湊表(Hash Table)又稱哈希表,是透過雜湊函式(Hash Function)來計算出一個鍵(key)與值(value)所對應的位置,進而建立雜湊表格,...
鏈結串列(Linked List)常用來處理相同類型資料,在不連續的記憶體位置,以隨機的方式儲存,由於不用事先宣告一塊連續記憶體空間,所以較不會造成記憶體的浪費...
二元樹走訪或稱二元樹遍歷,簡單來說就是走訪樹中各節點,轉化為線性關係。 主要分成兩種策略方式 深度優先搜尋(Depth-first Search,DFS)...
陣列(Array)是一種常見的資料結構,常用來處理相同類型的有序資料,並存放在連續的記憶體空間中。但由於會先宣告固定記憶體空間,容易造成記憶體浪費。 在讀取與修...
佇列(Queue)是一種排列結構,雖然與堆疊類似,但佇列在新增與刪除資料必須在不同端進行,前端(front)能夠刪除(dequeue)與查看(peek)資料,尾...
程式設計中資料結構與演算法是非常重要的兩大項目,彼此之間都會影響程式的運作。 資料結構 電腦在儲存資料時,會儲存在電腦的記憶體中,而資料可以有不同的儲存與組織...
圖(Graph),並非多數人直接聯想到形狀或圖片,在計算機科學或離散數學中的圖,是由數個頂點Vertex(或稱節點Node)及數條邊(Edge)所構成,頂點與頂...
堆疊(Stack)是一種排列結構,不過是由下往上堆放,任何動作都必須從最頂端(top)進行,因此有「後進先出」(Last In First Out)特性,縮寫為...
二元搜尋樹(Binary Search Tree),也稱有序/排序二元樹,是一種特殊二元樹結構,而節點資料的排序具備一些特性。 特性如下 左子樹任一節點的...
二元樹(Binary Tree)是最廣泛被使用的樹狀資料結構,簡單來說即為每個節點最多只能有兩個子節點。 樹與二元樹不同之處 樹不能是空集合,二元樹可以是空...
樹(Tree)屬於一種非線性結構,是一種上下階層關係,舉例: 組織架構圖、家族譜、賽程表等,類似一棵倒過來的樹,從一個樹根(root)開始向下發展許多節點(no...
一、什麼是資料結構 ? 當我們撰寫程式時,會宣告變數來存放資料,這些資料會儲存在記憶體中,在我們需要時可以拿出來使用。這邊我們可以思考兩點: 要儲存的資料內容...
Abstract Data Type (ADT) Human - Interface - ADT List With Order List ADT Op...
堆積(Heap)是一種特別的完全二元樹,又分為最小堆積(Min-Heap)、最大堆積(Max-Heap)。 最小堆積(Min-Heap) 樹根(Root)會是...
排隊? 人潮眾多的時候就需要排隊,吃東西要排隊,看電影要排隊,搭公車也要排隊。排隊的目的就是以順序來確保公平性。所以,第一個排隊的人可以先買到食物,先看到電影,...
資料結構 (Data Structure)不同的資料會有不同的儲存方式,而這些擺放的方式都會影響到程式設計,而這些儲存資料的方式就稱為資料結構。事實上,更精...
今天,我嘗試自己設計最大公因數程式碼,打得落落長一大堆if, else,不亦樂乎,結果測試結果失敗,所幸對了50%的測試(這哪好?,我卡在若輸入二數值是質數與質...
【在廚房想30天的演算法】Day 01 演算法好吃嗎~ Aloha!我是少女人妻Uerica!哈哈哈,過了一年又開始跟老公沒話題了,加上疫情關係天天處一起,我...
前言 今天要來討論一些更進階的程式寫法,比較偏向效能方面的優化,怎麼寫可以讓效能變好、擴充容易,而不是討論如何寫出一個 feature,因為我們的目標是「更好」...
之前提過,在 OO 語言裡,認為資料及操作一群相關的資料的行為應該放在同一個地方,形成「物件」這種概念。 而在函數式編程裡,卻用完全不同的角度在看待資料結構以及...
本系列將使用 JavaScript 來撰寫程式,文中也會穿插英文讓讀者盡量熟悉這些單詞,未來在看相關題目時能夠幫助理解。 什麼是演算法與資料結構 演算法指...
在文章開始之前,要先說說小弟我本人其實非資訊相關出身,所以所有的知識都是 google 大神教的所以若是文章內有任何錯誤的觀念也歡迎留言指教,謝謝 是這樣子的...
此演算法是由一位叫 Edsger Dijkstra 的荷蘭工程師所發明,他在電腦科學領域貢獻了許多奠定目前網際網路、電腦科學與數位服務等等的基礎。 在學習 D...
Big O Notation 是一種表示演算法複雜度的方式。同樣解決一個演算法問題,若該算法執行的時間越少,使用的記憶體愈少,就是越好的解法。可以用來評斷該演算...
From Medium Hash Table 是用來儲存鍵值對的資料 (key-value pairs)。 而 Hash Table 在找特定資料與新增刪除...
在昨天的文章中,筆者對「雜湊」(hash)做了介紹。而接下來兩天的文章要以此為基礎,進一步認識 Java 8 的 HashMap 是怎麼儲存和查詢資料的。Has...
Linked List 是一種資料結構,由一個個節點 (Node) 鏈結起來組成,本身僅存有 Head Node 和 Tail Node 以及總節點數 (len...
當要取得、更新、檢查 Graph 裡所有的節點時就會需要用到 Traversal 方法,常見的使用場景為點對點的網際網路、網站爬蟲、導航、迷宮問題或遊戲類的 A...
陣列與物件是 JavaScript 內建的資料結構,當提到一個資料結構的好壞時,我們會評斷操作該資料結構時所用的各個方法 (新增、刪除、存取或修改、查詢) 所需...
Data StructureHow to manipulate data?Data structure is a way to manipulate, or...