資料結構-基本概念學習筆記
1.1
-
資料(資訊的載體);
-
資料元素(資料的基本單位,由若干資料項組成);
-
資料物件(相同性質的資料元素的集合);
-
資料型別(原子、結構、抽象);
-
抽象資料型別(ADT,通常有資料物件,資料關係,基本操作來表示);
-
資料結構(存在特定關係的資料元素的集合,如邏輯結構、儲存結構、資料的運算)。
-
資料的邏輯結構是獨立於計算機的,分為線性與非線性。
集合,線性(一對一),樹形(一對多),圖狀/網狀(多對多)。 -
資料的儲存結構也稱為物理結構。主要有順序,鏈式,索引,雜湊。
-
順序:邏輯相鄰物理相鄰。隨機存取。
-
連結:邏輯相鄰物理不一定相鄰。順序存取。
-
索引:檢索快,佔用空間,修改複雜。
-
雜湊:元素關鍵字計算出儲存地址。
相關推薦
資料結構-基本概念學習筆記
1.1 資料(資訊的載體); 資料元素(資料的基本單位,由若干資料項組成); 資料物件(相同性質的資料元素的集合); 資料型別(原子、結構、抽象); 抽象資料型別(ADT,通常有資料物件,資料關係,基本操作來表示); 資料結構(
mongodb的基本概念 學習筆記(二)
不能 所有 訪問 數據庫 理解 基本上 其他 mongodb 連接 mongodb的基本概念1.文檔1.1定義:文檔是mongodb的核心概念。多個鍵及其關聯的值有序地放 置在一起便是文檔。 文檔可以理解為關系數據庫總的一行數據。1.2表示方法:{"greeting":"h
Kafka 基本概念學習筆記
com part 直接 image 和數 9.png 水平 添加 consumer 一. 什麽是Kafka 面向數據流的生產,轉換,存儲,消費的整體流處理平臺 二、Kafka三大特性 1、發布和訂閱數據的流,類似於消息隊列,消息系統 2.、數據流存儲平臺 3
資料結構作業1-資料結構基本概念
1-1 抽象資料型別中基本操作的定義與具體實現有關。 (1分) [ ] T [x] F 1-2 若用連結串列來表示一個線性表,則表中元素的地址一定是連續的。 (1分) [ ] T [x] F 2-1 在決定選取何種儲存結構時,一般不考慮()。 (2分) [ ] A.
資料結構與演算法學習筆記之後進先出的“桶”
前言 棧最為一種的常用的資料結構,用“桶”來形容最合適不過;今天我們就來學習一下 正文 一、棧的定義? 1.“後進先出,先進後出”的資料結構。 2.從操作特性來看,是一種“操作受限”的線性表,只可以在一端插入和刪除資料。 二、為什麼需要棧?
資料結構淺析(一):資料結構基本概念
轉載自https://m.meiwen.com.cn/subject/kzgvhttx.html 首先會有個疑問,什麼是資料結構呢? 資料結構(data structure),可以概括為是互相之間存在一種或多種特定關係的資料元素的集合。 開篇配圖
資料結構之圖學習筆記
一、圖的定義: 圖(Graph)是由頂點的有窮非空集合和頂點之間邊的集合組成,通常表示為:G(V,E),其中,G表示一個圖,V表示圖G中頂點的集合,E是圖G中的邊集合。 a.線性表中的資料元素我們稱為元素,樹中資料元素稱為節點,而圖中的
#資料結構與演算法學習筆記#劍指Offer29:整數中1出現的次數 + 分段思想/按位考慮 + 測試用例(Java、C/C++)
2018.10.5 感受到開學之後工作和課業的雙重壓力,加上近段時間自己出了點小事故,因此斷更了許久。沒事,繼續。 這道題有兩種複雜度為的演算法。 方法1:遞迴(分段思想)。 所有數字出現1的個數 = 每一段數字中出現1的個數之和 1. 對於輸出的數字n,其最高位為
資料結構與演算法學習筆記 1 (2018.10.05)
演算法 計算=資訊處理 藉助某種工具,遵照一定規則,以明確而機械的形式進行 計算模型=計算機=資訊處理工具 所謂演算法,即特定計算模型下,旨在解決特定問題的指令序列 輸入 待處理的資訊(問題) 輸
#資料結構與演算法學習筆記#劍指Offer30:把陣列排成最小的數 + 自定義比較器 + 測試用例(Java、C/C++)
2018.10.6 1.求全排列最小。事實上用全排列硬剛這道題確實是最直接的辦法,因為乍一眼看上去實在不好歸納數字之間的順序關係,全排列具體實現原理可以參考上述文章。 2.自定義比較器。為什麼說
資料結構與演算法學習筆記之 複雜度分析
前言: 大家都知道資料結構和英語,就如同程式設計師的兩條腿一樣;只有不斷的積累,學習,擁有了健壯的“雙腿”才能越走越遠;在資料結構和演算法的領域,不得不承認自己就是一隻菜鳥;需要不斷的學習;在學習過程中,經常會有一些自己的看法,和別人獨特的見解;我都會一一做好筆記,以便進步; 正文:複雜度分析
資料結構與演算法學習筆記 2 (2018.10.06)
演算法分析 兩個主要方面: 正確性:演算法的功能與問題要求一致? 數學證明?可不那麼簡單... 成本:執行時間 + 所需儲存空間
資料結構與演算法學習筆記 4 (2018.10.08)
漸進分析:大o記號 回到原先的問題:隨著問題規模的增長,計算成本如何增長? 注意:這裡更關心足夠大的問題,注重考察成本的增長趨勢 漸進分析:在問題的規模足夠大後,計算成本如何成長? Asymptomatic analysis :當
資料結構與演算法學習筆記之 提高讀取效能的連結串列(上)
前言 連結串列(Linked list)比陣列稍微複雜一點,在我們生活中用到最常見的應該是快取,它是一種提高資料讀取效能的技術,常見的如cpu快取,瀏覽器快取,資料庫快取等。今天我們就來學習一下連結串列 正文 一、連結串列的定義? 1.一種線性表(資料排成像一條線一樣的結構。每個線性表上的資料最多
《傳智播客-資料結構》01 資料結構基本概念 2018/10/14
1.資料結構概念 1.1 資料結構的起源 資料結構主要用於研究非數值計算程式問題中的操作物件以及它們之間的關係,不是研究複雜的演算法 1.2基本概念 資料--程式的操作物件,用於描述客觀事物(int a ,int b) 資料的特點: 1、可輸入到計算機內 2、可
小白的資料結構與演算法學習筆記(二十六)----廣義表
一、廣義表的概述 首先回憶一下原子型別和結構型別,簡單說來,原子型別就是不可再分的型別,結構型別就是可以再分的型別。我們前面講的線性表要求每個元素都是原子型別,而廣義表作為線性表的推廣,它的元素可以是原子型別,也可以是個表。元素是原子型別,叫原子結點;元素是表,叫表結點。
資料結構與演算法學習筆記之先進先出的佇列
前言 佇列是一種非常實用的資料結構,類似於生活中發排隊,可應用於生活,開發中各個方面,比如共享印表機(先請求先列印),訊息佇列。你想知道他們是怎麼工作的麼。那就來一起學習一下佇列吧 正文 一、佇列的定義? 1.一種先進先出的線性表 2.只允許入棧 push()和出棧 pop() 在後端(稱
資料結構與演算法學習筆記之高效、簡潔的編碼技巧“遞迴”
前言 盜夢空間想象大多數人都看過:電影講述的是主人公諾蘭進入希裡安·墨菲夢境植入想法的行動。為了向希裡安·墨菲夢植入理念,影片進入四層夢境,即所謂:“夢中的夢中 夢中人的夢中”。 有一對兔子,每隔三個月會產下一對小兔子,小免子每隔三個月,也會產生新的一對免子,問36個月後,共有多少對兔子。 諸如此類:其
資料結構與演算法學習筆記之如何分析一個排序演算法?
前言 現在IT這塊找工作,不會幾個演算法都不好意思出門,排序演算法恰巧是其中最簡單的,我接觸的第一個演算法就是它,但是你知道怎麼分析一個排序演算法麼?有很多時間複雜度相同的排序演算法,在實際編碼中,那又如何選擇呢?下面我們帶著問題一起學習一下。 正文 一、常見經典的排序方法 (圖片來自於一畫素)
#資料結構與演算法學習筆記#劍指Offer34:兩個連結串列的第一個公共結點 + 等長遍歷/輔助棧 + 測試用例(Java、C/C++)
2018.10.21 這道題也是屬於效率題,實現難度不大,但是要降低複雜度還是需要思考一下。有兩個o(n)的做法: 方法一:等長連結串列法。先計算兩條連結串列的長度,然後先遍歷長連結串列直到兩條連結串列等長,最後依次按奇偶順序挨個遍歷兩條連結串列各個結點。 方法二:輔助