C語言編程數(shù)據(jù)結(jié)構基礎詳解小白篇
介紹
數(shù)據(jù)結(jié)構的基本信息
數(shù)據(jù):是客觀事物的符號表示,是所有能輸入到計算機中并被計算機程序處理的符號的總稱。如:字符串,實數(shù)整數(shù)。。。。
數(shù)據(jù)元素:是數(shù)據(jù)的基本單位,在計算機中通常被作為一個整體進行考慮與處理。如組成通訊錄的每一個人的信息,數(shù)據(jù)元素可以完整的描述一個對象。
數(shù)據(jù)項:是組成數(shù)據(jù)元素的,具有獨立意義的,不可分割的最小單位(也就是說,數(shù)據(jù)元素由諾干個數(shù)據(jù)項組成)。如,通訊錄中每一個學生都是數(shù)據(jù)元素,而,描述學生的姓名,性別,年齡等,都是學生的數(shù)據(jù)項。
數(shù)據(jù)對象:性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。只要是一個集合內(nèi)的數(shù)據(jù)元素的性質(zhì)一樣,該集合都可以是一個數(shù)據(jù)對象。如,整數(shù)集和,是整數(shù)的數(shù)據(jù)對象。
數(shù)據(jù)結(jié)構
是什么
數(shù)據(jù)結(jié)構:是相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合
或者說,數(shù)據(jù)結(jié)構是帶“一定結(jié)構”的數(shù)據(jù)元素的集合,“結(jié)構”就是指數(shù)據(jù)元素之間存在的關系
數(shù)據(jù)結(jié)構
包括邏輯結(jié)構和存儲結(jié)構
邏輯結(jié)構
邏輯結(jié)構是從邏輯關系上描述數(shù)據(jù),與數(shù)據(jù)的存儲無關,是獨立于計算機的(是認為想象出來的的一種數(shù)據(jù)模型)
數(shù)據(jù)的邏輯結(jié)構有兩大要素:1,數(shù)據(jù)元素;2,關系
數(shù)據(jù)元素是指可被計算機看為一個整體進行處理與考慮。
而關系是指數(shù)據(jù)元素之間存在的邏輯關系
通常有以下4類基本結(jié)構
1,集合結(jié)構
數(shù)據(jù)元素除了同屬同一集合之外,再無其他關系(每個數(shù)據(jù)元素具有同一性質(zhì))
例如:集合結(jié)構應用時,可以每個班為一個集合,每個班中的學生則是數(shù)據(jù)元素,各個班的學生都是人,但每個學生的數(shù)據(jù)項各不相同。而各個班相比則更是兩個集合。
2,線性結(jié)構
數(shù)據(jù)元素之間只存在一對一的關系。
例如:統(tǒng)計學生入學信息是按照其入學時間進行排列儲存。
要想找到某個學生的信息,只能根據(jù)相互之間的時間關系,去遍歷,去二分,去查找。
3,樹結(jié)構
數(shù)據(jù)元素之間存在一對多的關系。
例如:古代封建制度里的皇帝管理六部,六部分管各個衙門機構。。。。
4,圖結(jié)構或網(wǎng)結(jié)構
數(shù)據(jù)元素之間處在多對多的關系。
要想找到某個元素可以有多個路徑或方法可以達到目的。
邏輯結(jié)構又分為線性結(jié)構和非線性結(jié)構,以上4種基本結(jié)構都屬于非線性結(jié)構
看以下圖表,增強記憶,理清思路。
存儲結(jié)構
數(shù)據(jù)對象在計算機中的存儲為數(shù)據(jù)的儲存結(jié)構,也是物理結(jié)構,要映射到計算機中的物理內(nèi)存中。將數(shù)據(jù)對象存儲到計算機中要儲存各數(shù)據(jù)元素,又要儲存元素之間的邏輯關系。
在計算機中有兩種儲存方式:順序儲存和鏈式儲存。
順序儲存結(jié)構
借助元素在存儲器的相對位置來表示數(shù)據(jù)元素之間的邏輯關系。
即相當于,在內(nèi)存中依次按地址儲存。
例如:數(shù)組
鏈式儲存結(jié)構
所有元素依次存放在一片連續(xù)的存儲空間中,而鏈式存儲結(jié)構無需占用一整塊存儲空間,但要利用指針來指明數(shù)據(jù)元素之間的關系。例如:鏈表。
抽象數(shù)據(jù)類型
根據(jù)實際問題,由用戶定義的,解決應用問題的數(shù)據(jù)模型,以及在這個模型是的一系列操作。
例如:用結(jié)構體創(chuàng)建的結(jié)構體類型。
如有錯誤,煩請大佬指正
我目前水平不夠,暫時未對抽象數(shù)據(jù)類型有過多認知,以后會補上。
以上就是數(shù)據(jù)結(jié)構基礎詳解小白篇的詳細內(nèi)容,更多關于C語言數(shù)據(jù)結(jié)構基礎的資料請關注腳本之家其它相關文章!
相關文章
Qt槽函數(shù)會被執(zhí)行多次的問題原因及解決方法
本文主要介紹了Qt槽函數(shù)會被執(zhí)行多次的問題原因及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01C++語法詳解之封裝、構造函數(shù)、析構函數(shù)
這篇文章主要介紹了C++語法詳解之封裝、構造函數(shù)、析構函數(shù)的相關知識,通過實例代碼給大家詳細介紹,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03VScode + keil開發(fā)環(huán)境搭建安裝使用過程
這篇文章主要介紹了VScode + keil開發(fā)環(huán)境搭建及安裝使用過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07C++ 輸入一行數(shù)字(含負數(shù))存入數(shù)組中的案例
這篇文章主要介紹了C++ 輸入一行數(shù)字(含負數(shù))存入數(shù)組中的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12深入解析C++中的函數(shù)模板和函數(shù)的默認參數(shù)
這篇文章主要介紹了深入解析C++中的函數(shù)模板和函數(shù)的默認參數(shù),是C++入門學習中的基礎知識,需要的朋友可以參考下2015-09-09