數(shù)據(jù)結(jié)果跟算法就不是一個概念。
數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存放的方法,算法是處理問題的方法。兩種沒有什么關(guān)系,一個數(shù)據(jù)結(jié)構(gòu)可以應(yīng)用于多個算法,一個算法也可以使用多種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。
常見的數(shù)據(jù)結(jié)構(gòu)
一般是根據(jù)算法來選擇合適的數(shù)據(jù)結(jié)構(gòu)。
?數(shù)組(Array)
?棧(Stack)
?隊列(Queue)
?鏈表(LinkedList)
?樹(Tree)
?圖(Graph)
?堆(Heap)
?散列表(Hash)
那么可以根據(jù)算法來選擇合適的數(shù)據(jù)結(jié)構(gòu),
例如,
貪心算法可以選擇數(shù)組、列表。
排序算法可以使用數(shù)組、列表、鏈表、堆。
深度優(yōu)先算法比較喜歡用棧。
廣度優(yōu)先算法比較喜歡用列表。
如果想學(xué)習(xí)的話,建議先學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》再學(xué)習(xí)《算法設(shè)計與分析》