首页
/
每日頭條
/
科技
/
數據結構與算法關系是什麼
數據結構與算法關系是什麼
更新时间:2025-01-10 04:39:01

數據的邏輯結構:

數據的邏輯結構指數據元素之間的邏輯關系(和實現無關)。

分類1:線性結構和非線性結構

線性結構:

有且隻有一個開始結點和一個終端結點,并且所有結點都最多隻有一個直接前驅和一個直接後繼。

線性表就是一個典型的線性結構,它有四個基本特征:

  • ​集合中必存在唯一的一個"第一個元素";
  • 集合中必存在唯一的一個"最後的元素";
  • 除最後元素之外,其它數據元素均有唯一的"直接後繼";
  • 除第一元素之外,其它數據元素均有唯一的"直接前驅"。

數據結構與算法關系是什麼(數據結構與算法)1

生活案例:冰糖葫蘆、 排隊上地鐵

數據結構與算法關系是什麼(數據結構與算法)2

相對應于線性結構,非線性結構的邏輯特征是一個節點元素可能對應多個直接前驅和多個直接後繼。

常見的非線性結構有:樹(二叉樹等),圖(網等)。

樹:

生活案例:單位組織架構、族譜

技術案例:文件系統。

數據結構與算法關系是什麼(數據結構與算法)3

數據結構與算法關系是什麼(數據結構與算法)4

數據結構與算法關系是什麼(數據結構與算法)5

圖:

生活案例:交通線路圖,地鐵圖

數據結構與算法關系是什麼(數據結構與算法)6

數據結構與算法關系是什麼(數據結構與算法)7

分類2:集合結構 線性結構 樹狀結構 網絡結構

邏輯結構有四種基本類型:集合結構、線性結構、樹狀結構和網絡結構。

表和樹是最常用的兩種高效數據結構,許多高效的算法能夠用這兩種數據結構來設計實現。

集合結構:

就是數學中所學習的集合。集合中的元素有三個特征:

  • 确定性(集合中的元素必須是确定的)
  • 唯一性(集合中的元素互不相同。例如:集合A={1,a},則a不能等于1)
  • 無序性(集合中的元素沒有先後之分),如集合{3,4,5}和{3,5,4}算作同一個集合

該結構的數據元素間的關系是“屬于同一個集合”,别無其它關系。

因為集合中元素關系很弱,數據結構中不對該結構進行研究

線性結構:

數據結構中線性結構指的是數據元素之間存在着“一對一”的線性關系的數據結構。

樹狀結構:除了一個數據元素(元素 01)以外每個數據元素有且僅有一個直接前驅元素,但是可以有多個直接後續元素。

特點是數據元素之間是 1 對 多的聯系

網絡結構:

每個數據元素可以有多個直接前驅元素,也可以有多個直接後續元素。特點是數據元素之間是多對 多 的聯系

數據結構與算法關系是什麼(數據結構與算法)8

問題:1個班的學生是什麼邏輯結構呢?

數據的存儲結構

數據的存儲結構主要包括數據元素本身的存儲以及數據元素之間關系表示,是數據的邏輯結構在計算機中的表示。

常見的存儲結構有順序存儲,鍊式存儲,索引存儲,以及散列存儲。

順序存儲結構:

把邏輯上相鄰的節點存儲在物理位置上相鄰的存儲單元中,節點之間的邏輯關系由存儲單元的鄰接關系來體現。

由此得到的存儲結構為順序存儲結構,通常順序存儲結構是借助于計算機程序設計語言(例如C/C )的數組來描述的。

(數據元素的存儲對應于一塊連續的存儲空間,數據元素之間的前驅和後續關系通過數據元素,在存儲器中的相對位置來反映)

數據結構與算法關系是什麼(數據結構與算法)9

優點:

  • 節省存儲空間,因為分配給數據的存儲單元全用存放結點的數據(不考慮c/c 語言中數組需指定大小的情況),結點之間的邏輯關系沒有占用額外的存儲空間。
  • 采用這種方法時,可實現對結點的随機存取,即每一個結點對應一個序号,由該序号可以直接計算出來結點的存儲地址。

缺點:

  • 插入和删除操作需要移動元素,效率較低。
  • 必須提前分配固定數量的空間,如果存儲元素少,可能導緻空閑浪費。

數據結構與算法關系是什麼(數據結構與算法)10

鍊式存儲結構:

數據元素的存儲對應的是不連續的存儲空間,每個存儲節點對應一個需要存儲的數據元素。

每個結點是由數據域和指針域組成。元素之間的邏輯關系通過存儲節點之間的鍊接關系反映出來。

邏輯上相鄰的節點物理上不必相鄰。

缺點:

  • 比順序存儲結構的存儲密度小 (每個節點都由數據域和指針域組成,所以相同空間内假設全存滿的話順序比鍊式存儲更多)。
  • 查找結點時鍊式存儲要比順序存儲慢。

優點:

  • 插入、删除靈活 (不必移動節點,隻要改變節點中的指針)。
  • 有元素才會分配結點空間,不會有閑置的結點。

數據結構與算法關系是什麼(數據結構與算法)11

索引存儲結構:

除建立存儲結點信息外,還建立附加的索引表來标識結點的地址。

比如圖書、字典的目錄

數據結構與算法關系是什麼(數據結構與算法)12

散列存儲結構:

根據結點的關鍵字直接計算出該結點的存儲地址 HashSet HashMap

一種神奇的結構,添加、查詢速度快。

數據結構與算法關系是什麼(數據結構與算法)13

舉例:

線性表的邏輯結構如圖所示:

數據結構與算法關系是什麼(數據結構與算法)14

線性表邏輯結構對應的順序存儲結構為順序表,對應的鍊式存儲結構為鍊表。

順序表

數據結構與算法關系是什麼(數據結構與算法)15

鍊表

數據結構與算法關系是什麼(數據結構與算法)16

  • 同一邏輯結構可以對應多種存儲結構。
  • 同樣的運算,在不同的存儲結構中,其實現過程是不同的

數據結構與算法關系是什麼(數據結構與算法)17

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
怎麼删除手機文件
怎麼删除手機文件
怎麼删除手機文件?方法一:打開設置,點擊“通用”點擊“不常用的軟件”,然後點擊“卸載應用”就可以了,今天小編就來聊一聊關于怎麼删除手機文件?接下來我們就一起去研究一下吧!怎麼删除手機文件方法一:打開設置,點擊“通用”。點擊“不常用的軟件”,...
2025-01-10
目前5g手機銷量排行榜
目前5g手機銷量排行榜
文/球子審核/子揚校對/知秋對于國内手機品牌,很多消費者多少都有些了解,像華為、小米、OV,以及他們旗下的子品牌,都深受衆多消費者的歡迎,而國内消費者購機基本上都是從這些品牌中選擇。不過,在衆多手機品牌中,還有一家消費者并不熟悉的手機巨頭,...
2025-01-10
雲閃付個人信用報告顯示沒有咋辦
雲閃付個人信用報告顯示沒有咋辦
雲閃付個人信用報告顯示沒有咋辦?“隻要手機上安裝了雲閃付APP,随時随地都能查信用報告,真的很方便”查詢個人信用報告的客戶索朗說,我來為大家講解一下關于雲閃付個人信用報告顯示沒有咋辦?跟着小編一起來看一看吧!雲閃付個人信用報告顯示沒有咋辦“...
2025-01-10
滴滴車主可以更換手機号碼嗎
滴滴車主可以更換手機号碼嗎
2017年10月23日|我是小滴這是一篇産宣文最近小滴在後台總是看到車主大大們一直在問“換了新手機号怎麼辦?”“手機丢了,如何更改電話号碼”“如何更換呼叫手機号”别着急,小滴我啊這就給大家解決“如何修改手機号”1、原手機号可以正常使用接收驗...
2025-01-10
純文字勵志背景圖手機壁紙
純文字勵志背景圖手機壁紙
,
2025-01-10
Copyright 2023-2025 - www.tftnews.com All Rights Reserved