我在wikipedia上發現了大量的數據結構,也研究了數據結構中的幾本書,並發現它們有所不同。我想知道一個新的CS畢業生應該具備的基本或最低數據結構知識清單是什麼?Datastructres需要的最低知識
考慮到實現方式的不同,還需要了解它們在多個編程知識中的實現。如果我知道C中鏈接列表的實現,我應該知道它的基於Java的實現?
這將是巨大的,如果你能幫助我斬釘截鐵地理解:
- 基本的數據結構(必需的CS畢業生)
- 高級數據結構
編輯:我更感興趣的是數據結構列表。
我在wikipedia上發現了大量的數據結構,也研究了數據結構中的幾本書,並發現它們有所不同。我想知道一個新的CS畢業生應該具備的基本或最低數據結構知識清單是什麼?Datastructres需要的最低知識
考慮到實現方式的不同,還需要了解它們在多個編程知識中的實現。如果我知道C中鏈接列表的實現,我應該知道它的基於Java的實現?
這將是巨大的,如果你能幫助我斬釘截鐵地理解:
編輯:我更感興趣的是數據結構列表。
這個問題實際上有點過於寬泛,即使你縮小了它的範圍,因爲它取決於你在看什麼樣的未來路徑。研究生院?博士軌道?行業?哪個行業?
但作爲一個粗略的最低,我會說,看看CLRS(拉斐爾建議),並挑選了以下工作:
而且可能還有一些基於您正在尋找什麼樣的工作。作爲博士生軌道上的人......好。他們全部。在某些時候,你會拿到一個預選賽,並且預計會知道其中的大部分。
看看Cormen等人的Introduction to Algorithms。根據我的經驗,如果你知道那裏有什麼,你就會爲你找到任何東西。
我不會考慮知道任何實現非常有用。如果你知道基礎知識,你應該能夠快速實現你自己的版本,但是你可能永遠不會需要,因爲有這樣的庫。所以實踐的規則是:瞭解你的圖書館!即使如此,重要的是要知道數據結構的屬性(例如空間開銷,中央操作的運行時間,併發訪問下的行爲,(im)可變性等),因此您將始終使用最適合的數據結構到你手頭的任務。
查看MIT的OCW Intro to Algorithm Course理論上這是一個很棒的教程。 對於練習Java中的數據結構檢查:數據結構& Java中的算法由Robert Lafore表示,它非常出色。 用一種語言來實現就足夠了,但試着用面向結構的語言來解決它,比如Java和C++等C和OO語言。這在準備面試時會有很大幫助。 一個很好的資源在C基本數據結構:here
這似乎並不像一個真正的問題..你想一般瞭解數據結構?採取數據結構課程。 – WeaselFox 2012-02-09 06:17:15
這個問題可能適用於即將到來的[計算機科學棧交換](http://area51.stackexchange.com/proposals/35636/computer-science-non-programming?referrer=pdx8p7tVWqozXN85c5ibxQ2)。所以,如果你喜歡有這樣一個問題的地方,請繼續前進,並幫助這個提議起飛! – Raphael 2012-02-09 11:24:34
@Raphael請讓我知道我可以如何將您的建議轉移到正確的論壇。 – 2012-02-09 16:46:49