資料結構

39 篇文章
0. 導論 比賽在我們生活中無時無刻都存在. 在學生時代, 不論是小學, 中學還是大學, 大家可能在學校中或者在社會上都會參加甚至組織一些比賽. 在一個國家或者在整個世界上, 也有不少的比賽, 例如奧…
0. 導論 我們已經介紹了一種很特殊的樹 - 堆積. 堆積排序是我們講述過的所有排序演算法中, 唯一一個時間複雜度為 而空間複雜度為 的排序演算法. 由於堆積內部元素的高度有序性, 這也就導致如果我們…
0. 導論 在合併排序法和快速排序法中, 其時間複雜度達到了排序時間複雜度的下限 . 但是, 從空間的角度來說, 不管是使用遞迴來實作還是使用堆疊來消除遞迴, 我們仍然需要 的空間來輔助排序的過程. …
1. 定義 定義 1. 一棵二元樹 是有限個元素的集合 (可以為空). 當二元樹非空時, 其中有一個元素 作為樹的根, 餘下的元素 (若存在) 被劃分為兩顆二元樹, 分別是 的左子樹和右子樹. 一般來…
定義 1. 一棵樹 是一個非空的有限元素集合, 其中一個元素為根, 其餘元素 (若有) 組成了 的子樹 在畫一棵樹的時候, 每個元素都代表著一個節點. 樹的根節點畫在最上面, 其子樹畫在下面, 使用一…
在線性表中, 包括陣列和連結串列, 搜尋元素的時間複雜度為 . 而雜湊表是搜尋友好的資料結構, 它可以將搜尋的時間複雜度降低到 . 雜湊表使用雜湊函數將值影射到雜湊表的具體位置. 如果元素為 , 雜湊…
我們在《【資料結構】跳躍列表 (理論篇)》中講述了跳躍列表的基本結構, 根據 C++ 標準樣板程式庫中容器的大致樣子, 我們今天要實作一個和這些容器差不多的跳躍列表 要實作這樣一個容器, 首先就要實作…
  • C++
  • 2021-02-08
到目前為止, 我們已經介紹了兩種搜尋方式 : 順序搜尋和二分搜尋. 這兩種搜尋方式分別針對不同的資料架構. 接下來, 我們要介紹第一種有序的資料結構 : 跳躍列表 (Skip List), 它能夠提到…
大家對於像素畫應該都不陌生, 它是一個 m 行 n 列的像素矩陣. 在二值圖像中, 每一個像素或為黑色或為白色. 也就是說, 在 C++ 中, 我們可以使用布林型別來表示每一個像素. 0 表示黑色, …
迷宮是一個矩形區域, 左上角為迷宮的入口, 右下角為迷宮的出口 迷宮內部包含不可穿越的障礙物, 這些障礙物和迷宮的邊界平行  老鼠從入口進入迷宮, 尋找一條可行路徑使得老鼠可以從迷宮中走出, 要求…

關注我們的微信官方帳號

微信官方帳號