數(shù)據(jù)結(jié)構(gòu)的一些基本概念

數(shù)據(jù)結(jié)構(gòu)之基本概念

我們不論作為計算機專業(yè)的同學(xué)還是已經(jīng)工作的程序猿/媛嘲恍,都繞不開數(shù)據(jù)結(jié)構(gòu)這個技術(shù)點,今天我們來聊一聊它市埋。

1. 數(shù)據(jù)結(jié)構(gòu)在學(xué)什么

  • 如何用程序代碼把現(xiàn)實世界的問題信息化

  • 如何用計算機高效地處理這些信息從而創(chuàng)造價值

人類社會的發(fā)展王带,迄今經(jīng)歷了和經(jīng)歷著三個浪潮:第一次浪潮為農(nóng)業(yè)階段享言,從約1萬年前開始;第二次浪潮為工業(yè)階段纫事,從17世紀(jì)末開始勘畔;第三次浪潮為正在到來的信息化階段。 ----《第三次浪潮(1980版)》丽惶,阿爾文·托夫勒

信息化的例子:

image-20210121180439657
image-20210121180529839
image-20210121180659467
image-20210121183526427

以上種種炫七,已經(jīng)包含了我們?nèi)粘I畹姆椒矫婷妗?/p>

image-20210121183821924

唯一可以確定的是,明天會使我們所有人大吃一驚钾唬。

——阿爾文·托夫勒

image-20210121184100511

2. 數(shù)據(jù)結(jié)構(gòu)的一些基本概念

image-20210121191134642

1)基本概念

  • 數(shù)據(jù):

    數(shù)據(jù)是信息的載體万哪,是描述客觀事物屬性的數(shù)、字符及所有能輸入到計算機中并被計算機程序識別和處理的符號的集合抡秆。數(shù)據(jù)是計算機程序加工的原料奕巍。

    image-20210121191732522

計算機可以識別的是 0 和 1 的二進制數(shù)。

  • 數(shù)據(jù)元素琅轧、數(shù)據(jù)項:

    數(shù)據(jù)元素是數(shù)據(jù)的基本單位伍绳,通常作為一個整體進行考慮和處理。

    一個數(shù)據(jù)元素可由若干數(shù)據(jù)項組成乍桂,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)元素的不可分割的最小單位冲杀。

image-20210121192432608
  • 結(jié)構(gòu)

    各個元素之間的關(guān)系。

image-20210121192916299
  • 數(shù)據(jù)結(jié)構(gòu)睹酌、數(shù)據(jù)對象

    數(shù)據(jù)結(jié)構(gòu):是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合权谁。

    數(shù)據(jù)對象:是具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集憋沿。

    向上面的海底撈的例子:

    數(shù)據(jù)結(jié)構(gòu):某個特定門店的排隊顧客信息和它們之間的關(guān)系

    image-20210121193458588

    數(shù)據(jù)對象:全國所有門店的排隊顧客信息

    image-20210121193541772

下面以一張圖來顯示這些概念之間的關(guān)系:

image-20210121193815961
  • 數(shù)據(jù)類型

    數(shù)據(jù)類型是一個值的集合和定義在此集合上的一組操作的總稱旺芽。

    • 原子類型:其值不可再分的數(shù)據(jù)類型。
    image-20210121194401094
    • 結(jié)構(gòu)類型:其值可以再分解為若干成分(分量)的數(shù)據(jù)類型辐啄。
image-20210121194418870
  • 抽象數(shù)據(jù)類型(ADT)

    抽象數(shù)據(jù)類型是抽象數(shù)據(jù)組織及與之相關(guān)的操作采章。

2)數(shù)據(jù)結(jié)構(gòu)的三要素

  1. 邏輯結(jié)構(gòu)

    數(shù)據(jù)元素之間的邏輯關(guān)系。

    image-20210121195058057
  • 集合

    各個元素同屬一個集合壶辜,別無其他關(guān)系悯舟。

    image-20210121195226858
  • 線性結(jié)構(gòu)

    數(shù)據(jù)元素之間是一對一的關(guān)系,除了第一個元素砸民,所有元素都有唯一前驅(qū)抵怎;除了最后一個元素奋救,所有元素都有唯一后繼

image-20210121195542968
image-20210121195557057
  • 樹形結(jié)構(gòu)

    數(shù)據(jù)元素之間是一對多的關(guān)系反惕。

    image-20210121195710117
image-20210121195731919
  • 圖結(jié)構(gòu)

    數(shù)據(jù)元素之間是多對多的關(guān)系尝艘。

    image-20210121195859714
image-20210121195914485
image-20210121200001213
  1. 物理結(jié)構(gòu)(存儲結(jié)構(gòu))

    計算機表示數(shù)據(jù)元素之間邏輯關(guān)系的結(jié)構(gòu)。

    image-20210121202305032
  • 順序存儲

    把邏輯上相鄰的元素存儲在物理位置上也相鄰的存儲單元中姿染,元素之間的關(guān)系由存儲單元的鄰接關(guān)系來體現(xiàn)背亥。

    image-20210121200639304
image-20210121200653248
  • 鏈?zhǔn)酱鎯?/p>

    邏輯上相鄰的元素在物理位置上可以不相鄰,借助指示元素存儲地址的指針來表示元素之間的邏輯關(guān)系盔粹。

    image-20210121201123292
image-20210121201137695
  • 索引存儲

    在存儲元素信息的同時隘梨,還建立附加的索引表。索引表中的每項稱為索引項舷嗡,索引項的一般形式是(關(guān)鍵字轴猎,地址)。

    image-20210121201651198
image-20210121201705865
  • 散列存儲

    根據(jù)元素的關(guān)鍵字直接計算出該元素的存儲地址进萄,又稱為哈希(Hash)存儲捻脖。

image-20210121202115710

后面將介紹計算哈希值的方法

image-20210121202225813

再來理解一波,花開??

1)若采用順序存儲中鼠,則各個數(shù)據(jù)元素在物理上必須是連續(xù)的可婶;若采用非順序存儲,則各個數(shù)據(jù)元素在物理上可以是離散的援雇。

2)數(shù)據(jù)的存儲結(jié)構(gòu)會影響存儲空間分配的方便程度矛渴。(比如,有人想插隊)

3)數(shù)據(jù)的存儲結(jié)構(gòu)會影響對數(shù)據(jù)運算的速度惫搏。(比如具温,想找到某個人)

image-20210121203244357
image-20210121203257410
  1. 數(shù)據(jù)的運算

    施加在數(shù)據(jù)上的運算包括運算的定義實現(xiàn)運算的定義是針對邏輯結(jié)構(gòu)的筐赔,指出運算的功能铣猩;運算的實現(xiàn)是針對存儲結(jié)構(gòu)的,指出運算的具體操作步驟茴丰。

image-20210121203627747

后面會學(xué)習(xí)具體的數(shù)據(jù)結(jié)構(gòu)類型达皿,就會學(xué)習(xí)定義和實現(xiàn)。

大家如果想了解更多內(nèi)容贿肩,可以關(guān)注一下公眾號:程序員應(yīng)如是峦椰,里面有更多的技術(shù)分享

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汰规,隨后出現(xiàn)的幾起案子汤功,更是在濱河造成了極大的恐慌,老刑警劉巖控轿,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冤竹,死亡現(xiàn)場離奇詭異,居然都是意外死亡茬射,警方通過查閱死者的電腦和手機鹦蠕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來在抛,“玉大人钟病,你說我怎么就攤上這事「账螅” “怎么了肠阱?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朴读。 經(jīng)常有香客問我屹徘,道長,這世上最難降的妖魔是什么衅金? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任噪伊,我火速辦了婚禮,結(jié)果婚禮上氮唯,老公的妹妹穿的比我還像新娘鉴吹。我一直安慰自己,他們只是感情好惩琉,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布豆励。 她就那樣靜靜地躺著,像睡著了一般瞒渠。 火紅的嫁衣襯著肌膚如雪良蒸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天在孝,我揣著相機與錄音诚啃,去河邊找鬼。 笑死私沮,一個胖子當(dāng)著我的面吹牛始赎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仔燕,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼造垛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晰搀?” 一聲冷哼從身側(cè)響起五辽,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎外恕,沒想到半個月后杆逗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乡翅,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年罪郊,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠕蚜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡悔橄,死狀恐怖靶累,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癣疟,我是刑警寧澤挣柬,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站睛挚,受9級特大地震影響邪蛔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扎狱,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一店溢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧委乌,春花似錦床牧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壕吹,卻和暖如春著蛙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耳贬。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工踏堡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咒劲。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓顷蟆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腐魂。 傳聞我的和親對象是個殘疾皇子帐偎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容