本文行文思路結(jié)構(gòu)
一. 寫此系列文章緣由
二. 相關(guān)概念表述
1. 數(shù)據(jù)結(jié)構(gòu)的定義
2. 邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)的對比
三. 基本數(shù)據(jù)結(jié)構(gòu)的分類和列舉
四. 總結(jié)
一. 寫此系列文章緣由
之所以, 打算用Java語言再把基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)一遍, 原因有以下幾點(diǎn):
- 第一: 我們在學(xué)校里學(xué)的數(shù)據(jù)結(jié)構(gòu)大多數(shù)都是C語言實(shí)現(xiàn)的, 作為要學(xué)習(xí)和從事Java開發(fā)的程序員, 這對Java基礎(chǔ)也是一次再學(xué)習(xí)和提升;
- 第二: 在課堂上所學(xué), 大多數(shù)是以概念為主, 導(dǎo)致動手編程的能力嚴(yán)重下降, 理解如何實(shí)現(xiàn)和如何編碼, 都是同等重要的, 畢竟學(xué)習(xí)的內(nèi)容最終還是要學(xué)以致用的!
- 第三: 基本的數(shù)據(jù)結(jié)構(gòu)是后續(xù)學(xué)習(xí)算法的基石, 比如C++中的STL和Java中常用集合框架, 底層實(shí)現(xiàn)都是這些數(shù)據(jù)結(jié)構(gòu)中的知識;
- 第四: 在未來的求職當(dāng)中, 筆試和面試都少不了數(shù)據(jù)結(jié)構(gòu)的問題.
哈哈, 廢話不多說了, 總之, 一句話 --- 數(shù)據(jù)結(jié)構(gòu), 包括算法設(shè)計(jì), 這對從事軟件開發(fā)的人員來說, 是非常非常重要的!
二. 相關(guān)概念表述
1. 數(shù)據(jù)結(jié)構(gòu)的定義
來自維基百科的定義
在計(jì)算機(jī)科學(xué)中蜂挪,數(shù)據(jù)結(jié)構(gòu)(英語:data structure)是計(jì)算機(jī)中存儲、組織數(shù)據(jù)的方式。
來自數(shù)據(jù)結(jié)構(gòu)(C語言版, 嚴(yán)蔚敏著)此書的定義
數(shù)據(jù)結(jié)構(gòu)(data structure)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合.
簡單而言, 因?yàn)橛?jì)算機(jī)能快速處理大量的數(shù)據(jù), 而如何存儲數(shù)據(jù)就是一個問題, 數(shù)據(jù)結(jié)構(gòu)就是用來解決這個問題的.
2. 邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)的對比
在數(shù)據(jù)結(jié)構(gòu)中, 有兩個概念非常重要, 就是邏輯結(jié)構(gòu)和存儲結(jié)構(gòu). 可能你平時都在用, 但具體的概念不清楚.
邏輯結(jié)構(gòu): 數(shù)據(jù)元素之間的邏輯結(jié)構(gòu).
存儲結(jié)構(gòu): (也稱物理結(jié)構(gòu))數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示.
簡單而言, 比如最常用的棧, 是后進(jìn)先出的結(jié)構(gòu), 這就是一個邏輯結(jié)構(gòu); 它存儲在計(jì)算機(jī)中, 即可以用數(shù)組實(shí)現(xiàn), 也可以用鏈表來實(shí)現(xiàn), 所以, 用鏈表實(shí)現(xiàn)的棧, 其中, 這個鏈表就是一個存儲結(jié)構(gòu).
三. 基本數(shù)據(jù)結(jié)構(gòu)的分類和列舉
根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特性, 通常分為三種基本結(jié)構(gòu):
- 線性結(jié)構(gòu) (一對一)
- 樹形結(jié)構(gòu) (一對多)
- 圖狀結(jié)構(gòu) (多對多)
常見的數(shù)據(jù)結(jié)構(gòu)列舉:
- 數(shù)組 (Array)
- 棧 (Stack)
- 隊(duì)列(Queue)
- 鏈表(Linked List)
- 樹(Tree)
- 圖(Graph)
- 堆(Heap)
- 散列表(Hash)
四. 總結(jié)
因?yàn)榇宋闹皇谴蟾沤榻B我接下來要寫的內(nèi)容, 所以沒有編碼的部分!
最后, 非常歡迎各位小伙伴評論和指點(diǎn)我的文章, 如果您覺得寫得還不太差勁或者對您有一丁點(diǎn)的幫助, 麻煩動個小手點(diǎn)個贊, 好人萌萌噠, 也很感謝您耐心認(rèn)真地看完!