數(shù)據(jù)結(jié)構(gòu)順序棧的實(shí)現(xiàn)代碼 為什么學(xué)校里的數(shù)據(jù)結(jié)構(gòu)教的是用偽代碼,而不用具體語(yǔ)言實(shí)現(xiàn),考試也是用偽代碼,怎么感覺(jué)偽代碼更記不住?
為什么學(xué)校里的數(shù)據(jù)結(jié)構(gòu)教的是用偽代碼,而不用具體語(yǔ)言實(shí)現(xiàn),考試也是用偽代碼,怎么感覺(jué)偽代碼更記不?。渴褂脗未a是正確的方法。學(xué)習(xí)編程時(shí),不要受特定語(yǔ)言的束縛。過(guò)去,很多人說(shuō)算法和數(shù)據(jù)結(jié)構(gòu)一開(kāi)口就是C,
為什么學(xué)校里的數(shù)據(jù)結(jié)構(gòu)教的是用偽代碼,而不用具體語(yǔ)言實(shí)現(xiàn),考試也是用偽代碼,怎么感覺(jué)偽代碼更記不???
使用偽代碼是正確的方法。學(xué)習(xí)編程時(shí),不要受特定語(yǔ)言的束縛。過(guò)去,很多人說(shuō)算法和數(shù)據(jù)結(jié)構(gòu)一開(kāi)口就是C,但換成其他語(yǔ)言就不是C了。那是愚蠢的閱讀。最初,編寫(xiě)程序也應(yīng)該在開(kāi)始時(shí)編寫(xiě)偽代碼。只有當(dāng)偽代碼編寫(xiě)完成后,才能用特定的語(yǔ)言實(shí)現(xiàn)。只是當(dāng)你在腦子里做這一步的時(shí)候,你可以直接鍵入特定的語(yǔ)言代碼。其他人似乎認(rèn)為您不需要偽代碼。如果沒(méi)有這種想法,如果你讓他把一個(gè)程序換成另一種語(yǔ)言,他就做不到。例如,估計(jì)有些人認(rèn)為他們不能用數(shù)據(jù)庫(kù)制作鏈表或樹(shù)形圖。
為什么剛?cè)腴T的程序員沒(méi)有感覺(jué)到算法和數(shù)據(jù)結(jié)構(gòu)的重要性?
關(guān)于這個(gè)問(wèn)題,我首先非常遺憾地告訴大家兩點(diǎn)。
首先,能夠問(wèn)這個(gè)問(wèn)題意味著你不是一個(gè)程序員。只能說(shuō)你才剛剛開(kāi)始學(xué)習(xí)編程(即使你有一份編程工作,你也不能改變這一點(diǎn))。就像說(shuō)一個(gè)剛學(xué)了三個(gè)月吉他的人不能稱自己為吉他手(但他可以說(shuō)是吉他手或吉他手)。
其次,我很抱歉地告訴你,你還沒(méi)有開(kāi)始。入門的先決條件之一是理解程序?qū)嶋H上是一個(gè)算法數(shù)據(jù)結(jié)構(gòu)。所以你說(shuō)你是一個(gè)入門級(jí)程序員,但你不覺(jué)得算法和數(shù)據(jù)結(jié)構(gòu)的重要性。那么我想問(wèn)一下,除了算法和數(shù)據(jù)結(jié)構(gòu)之外,程序中還有什么重要的東西。
不理解狹義的算法,認(rèn)為算法是排序算法、搜索算法,認(rèn)為數(shù)據(jù)結(jié)構(gòu)是數(shù)組、鏈表、哈希表、圖形等。這些都是經(jīng)典的算法和數(shù)據(jù)結(jié)構(gòu)。
你寫(xiě)的程序,不能有任何這些經(jīng)典的數(shù)據(jù)結(jié)構(gòu)和算法,那么,你的程序沒(méi)有算法和數(shù)據(jù)結(jié)構(gòu)嗎?你的程序必須解決一個(gè)問(wèn)題或做些什么。這些東西,你首先需要在計(jì)算機(jī)世界建立一個(gè)模型,這個(gè)模型就是數(shù)據(jù)結(jié)構(gòu)?;谶@些數(shù)據(jù),您的程序需要執(zhí)行一些指令,這些指令是作為一個(gè)整體的算法。因此,program=algorithm數(shù)據(jù)結(jié)構(gòu)就是在這個(gè)廣義上說(shuō)的。
正是因?yàn)椤俺绦?算法數(shù)據(jù)結(jié)構(gòu)”,所以沒(méi)有了算法和數(shù)據(jù)結(jié)構(gòu),程序中就沒(méi)有殘留。至于算法和數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系,我不在這里討論。總之,沒(méi)有數(shù)據(jù),算法就沒(méi)有對(duì)象和基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和合理性將影響算法的性能。
為什么你感覺(jué)不到?答案是我答案開(kāi)頭的兩點(diǎn)。我說(shuō)的話似乎有點(diǎn)殘忍,但實(shí)際上沒(méi)什么。繼續(xù)學(xué)習(xí)。
程序員需要終身學(xué)習(xí)。
我現(xiàn)在沒(méi)學(xué)完C語(yǔ)言,但是學(xué)校已經(jīng)開(kāi)了數(shù)據(jù)結(jié)構(gòu)課程,感覺(jué)像聽(tīng)天書(shū)一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?
首先,我認(rèn)為作為一名大學(xué)生,自學(xué)能力很強(qiáng)。對(duì)于C語(yǔ)言沒(méi)有學(xué)完的,可以花時(shí)間認(rèn)真學(xué)習(xí)。不,你可以去圖書(shū)館查資料,或者上網(wǎng),或者自學(xué)?,F(xiàn)在網(wǎng)絡(luò)平臺(tái)有很多優(yōu)質(zhì)資源,你可以試試。第二,數(shù)據(jù)結(jié)構(gòu)的算法是抽象的,必須認(rèn)真研究。它是編程的基礎(chǔ),與C語(yǔ)言沒(méi)有必然的聯(lián)系。我們可以用C語(yǔ)言實(shí)現(xiàn)一些算法。它也可以用其他語(yǔ)言實(shí)現(xiàn)。
第三,對(duì)自己有信心。沒(méi)有問(wèn)題可以與老師和同學(xué)交流。既然我們選了一個(gè)好專業(yè),就應(yīng)該深入學(xué)習(xí)。
這是我的一些看法,希望對(duì)您有所幫助!