定義 1. 一棵樹 是一個非空的有限元素集合, 其中一個元素為根, 其餘元素 (若有) 組成了 的子樹 在畫一棵樹的時候, 每個元素都代表著一個節點. 樹的根節點畫在最上面, 其子樹畫在下面, 使用一…
在線性表中, 包括陣列和連結串列, 搜尋元素的時間複雜度為 . 而雜湊表是搜尋友好的資料結構, 它可以將搜尋的時間複雜度降低到 . 雜湊表使用雜湊函數將值影射到雜湊表的具體位置. 如果元素為 , 雜湊…
我們在《【資料結構】跳躍列表 (理論篇)》中講述了跳躍列表的基本結構, 根據 C++ 標準樣板程式庫中容器的大致樣子, 我們今天要實作一個和這些容器差不多的跳躍列表 要實作這樣一個容器, 首先就要實作…
  • C++
  • 2021-02-08
到目前為止, 我們已經介紹了兩種搜尋方式 : 順序搜尋和二分搜尋. 這兩種搜尋方式分別針對不同的資料架構. 接下來, 我們要介紹第一種有序的資料結構 : 跳躍列表 (Skip List), 它能夠提到…
大家對於像素畫應該都不陌生, 它是一個 m 行 n 列的像素矩陣. 在二值圖像中, 每一個像素或為黑色或為白色. 也就是說, 在 C++ 中, 我們可以使用布林型別來表示每一個像素. 0 表示黑色, …
迷宮是一個矩形區域, 左上角為迷宮的入口, 右下角為迷宮的出口 迷宮內部包含不可穿越的障礙物, 這些障礙物和迷宮的邊界平行  老鼠從入口進入迷宮, 尋找一條可行路徑使得老鼠可以從迷宮中走出, 要求…
一列貨運列車有 n 節車廂, 第 i 節車廂停靠在第 i 個站點. 假設列車在裝載的時候, 不一定按照順序進行裝載, 即車廂的編號不一定有序. 在列車到達終點站之前需要經過一個緩衝站點. 當列車駛出緩…
在學習完漸近數學和學會如何分析程式步伐之後, 我們可以針對一些已經給出的演算法和資料結構中的一些操作分析它們的複雜度. 對於任何演算法或著資料結構的操作, 分析其複雜度是必要的. 一般在所有資料裡面,…
在資料結構中, 線型的結構使用得比較多的是動態陣列, 也就是我們所說的 vector. 其次, 除了 vector 之外, 用得最多的也許就是堆疊和佇列. 今天來說一下堆疊的三個應用 一、括號匹配 在…
考察一個程式的作業計數和程式步伐主要有兩個原因 : 預測程式運作的時間如何隨著實體特徵的變化而變化 對兩個相同功能的演算法, 比較它們的時間複雜度 在使用作業計數的時候, 我們通常選擇我們感興趣的部分…

大家都搜尋

關注我們的微信官方帳號

微信官方帳號