java資料結構與演算法學習筆記(1) 概念

2021-08-31 06:40:57 字數 1037 閱讀 4813

今天覆習了資料結構,才發現很多概念都不懂,或是沒有分清楚。晚上跟mzd討論的時候,發現我們都對資料結構的某些地方都存在著誤解。因此深感弄清概念的重要,至少弄清概念可以應付二級、**。

資料結構

資料結構是計算機儲存、組織資料的方式。

資料元素相互之間的關係

稱為結構。

有四類基本結構:集合、線性結構

、樹形結構

、網狀結構。

集合結構中的資料元素除了同屬於一種型別外,別無其它關係。

線性結構中元素之間存在一對一關係

,樹形結構中元素之間存在一對多關

系,圖形結構中元素之間存在多對多關係。

資料結構中,根據資料元素之間的邏輯關係(邏輯上),可以把資料結構分成線性結構和非線性結構。樹形結構和網狀結構稱為非線性結構。

根據在物理記憶體上的空間分布(物理上),可以得到兩種不同的儲存結構:順序儲存結構和鏈式儲存結構。

個人淺陋的理解:就是把一堆資料按一定的方式放置。比如擁有一串佛珠,撒落一地就是集合(set),用根繩子把它們竄起來,就是一條鍊子。

線性表

線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。

在實際應用中,線性表都是以棧、佇列、字串、陣列

等特殊線性表的形式來使用的。

線性結構的基本特徵為:

1.集合中必存在唯一的乙個「第一元素」;

2.集合中必存在唯一的乙個「最後元素」 ;

3.除最後乙個元素之外,均有 唯一的後繼(後件);

4.除第乙個元素之外,均有 唯一的前驅(前件)。

基於以上的特徵,所以雖然樹(tree)有唯一的前驅,但是它允許有多個後繼,所以樹不是線性表。

很多人會把先線性跟連續性聯想到一塊(包括我自己),所以會認為鍊錶是非線性表。鍊錶在儲存空間上雖然不是連續的,但在邏輯關係上它也是一對一的關係。

以上如有不當之處,歡迎指正,謝謝。

今天先到此,tomorrow 繼續。

資料結構與演算法學習筆記

演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...

java資料結構與演算法學習 BF演算法

bf演算法 brute force 是一種最基本的模式匹配演算法。bf演算法的實現思想很簡單 從目標串s 的第乙個字元起和模式串t的第乙個字元進行比較,若相等,則繼續逐個比較後續字元,否則從串s的第二個字元起再重新和串t進行比較。依此類推,直至串t 中的每個字元依次和串s的乙個連續的字串行相等,則稱...

資料結構與演算法學習筆記(一)

資料 計算機操作的物件 資料元素 組成資料的基本基本單位 資料項 乙個資料元素可以由若干個資料項組成 資料物件 性質相同的資料元素的集合 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 資料型別 1.原子型別 不可以在分解的基本型別,包括整型,字元型 2.結構型別 由若干個型別組合而成 ...