本人計算機專業學生,正在學習數據結構知識,然而總覺得無法從演算法編程實例,覺得某處存在瓶頸,求幫助


問問你校做ACM的成績不錯的就知道了…基本上靠練習和理解。

不過如果是說數據結構課程……據我所知那門課程一般都講最基礎和最簡單的部分為主……多看多想多練吧……


看了回答 感覺都是大白話啊。給你個網站 http://leetcode.com 上去就明白了

老師講得是偽代碼,或許想傳遞給你們更多是思想

我覺得數據結構與演算法重要的就是思想

背代碼沒什麼用,思想理解多練習就行~

對了記得選一本好書


偽碼是為了方便思考,所以省略了很多語法細節。本質上是機器的思路,也就是演算法。

從偽碼變代碼,要細化一些東西,比如:

1,語法

2,「瞻前顧後」:重點代碼前後的初始化,善後

3,數據類型的具體化

等等。

偽碼雖然省略了上述細節,但邏輯必須和代碼完全一致。比如說,偽碼中的一個函數的輸入、輸出,和代碼應該是一致的。


兩方面,一方面演算法跟數據結構講的是方法跟思路,所以用違碼,不需考慮語言(就算全中文敘述,懂就行,大多思想不理解所以轉化不出來)。另一方面,思路懂了還編不出來就可能是語言不熟,比如棧,JS里pop()跟push()就能實現的,在C裡面就要繁瑣一些,但思想都是一樣的。
你也不說清楚要學什麼數據結構,你的基礎之類的。

建議像oier一樣吧,上點國內題庫做點題,然後搜索題解。的確網上很多碼農的講解太過於丑了。相比中學生甚至小學生的,結合題目的題解,配有注釋的,更加方便閱讀。


偽碼有什麼不好, 萬一老師給你用某種奇奇怪怪的語言實現怎麼辦(或者你想用某種奇奇怪怪的語言實現)
刷題吧,別無他法。上班之後真正動手實現數據結構的機會太少了,大多數語言已經把常用的數據結構和基本演算法封裝好了
推薦閱讀:
相关文章