15 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
建議初學(xué)數(shù)據(jù)結(jié)構(gòu)的同學(xué)直接使用C,絕不建議使用Java。C能讓你進(jìn)一步了解底層的代碼的實(shí)現(xiàn)和算法思想,Java封裝太深,讓人很容易忽略底層代碼(底層代碼不容易看到)。對(duì)于算法我建議使用C++或是Java,算法側(cè)重思想和實(shí)現(xiàn),語言其次了(在不考慮算法性能的情況下)。如果可以最好都用C,會(huì)是你未來受益無窮。

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
算法的話,如果你是在校的學(xué)生,老師一般會(huì)要求用C進(jìn)行算法的實(shí)現(xiàn)的,java好多的功能都是有現(xiàn)成的接口進(jìn)行調(diào)用的。有時(shí)間會(huì)讓你忽略底層的一些東西。

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
其實(shí)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的話,個(gè)人建議你用C語言吧!因?yàn)镃語言可以讓你更接近底層,比如內(nèi)存的分配

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
這取決于你打算從練習(xí)中學(xué)到什么,算法很多情況下是語言無關(guān)的,但是如果想理解很基本的數(shù)據(jù)類型數(shù)據(jù)結(jié)構(gòu)的操作(比如數(shù)組和鏈表為什么在不同領(lǐng)域分別有不可替代的用處),那最好就繞過已經(jīng)對(duì)這些基本結(jié)構(gòu)進(jìn)行過的封裝。java c++已經(jīng)對(duì)集合類型做了很不錯(cuò)的封裝,有的c庫也做了這樣的事情,所以更多的應(yīng)該是去繞過這些已經(jīng)實(shí)現(xiàn)了的API用簡(jiǎn)單數(shù)據(jù)類型配合控制、循環(huán)、函數(shù)等機(jī)制去實(shí)現(xiàn),而不太應(yīng)該說繞過某個(gè)語言

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)用C,學(xué)習(xí)算法用C++/JAVA,
剛開始學(xué)數(shù)據(jù)結(jié)構(gòu)和算法,用C

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
最近我要復(fù)習(xí)算法的東西,我使用 Golang。
算法應(yīng)該是比語言更高一層的東西,你能明白算法的思想,隨便換一種語言你都應(yīng)該能實(shí)現(xiàn)。
假設(shè)某種算法你只能在特定的一個(gè)語言下實(shí)現(xiàn),那么你也只能算是學(xué)會(huì)語言,而不是算法。

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
為什么要用C?國(guó)外入門都用python,因?yàn)楹?jiǎn)單。所以你考慮今后會(huì)用什么語言,顯然Java更具有優(yōu)勢(shì),而且學(xué)數(shù)據(jù)結(jié)構(gòu)就學(xué)數(shù)據(jù)結(jié)構(gòu),Java具有更好的封裝性,更簡(jiǎn)單方便。

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
支持以上全部爭(zhēng)論。
C語言挺好的,但是也有一些缺點(diǎn),比如到了hash那里,用C就稍微有點(diǎn)麻煩。Java太大了,封裝太多。還是那句老話:程序=數(shù)據(jù)結(jié)構(gòu)+算法。語言上沒必要糾結(jié),你覺得什么語言熟就用什么。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)然是c語言了,屬于偏底層的語言,用來實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法再合適不過了。面向過程
添加回答
舉報(bào)