-
1 # HelloSLAM
-
2 # 毅決宏然
哈哈(ಡωಡ),正常,剛接觸,想當年,我們班上學的時候,大都有這樣的狀態,沉下心來學習,甭管什麼,很重要就對了,你現在不學,到時候,你還是會回來再學的。資料結構算是計算機理論基礎課中比較有趣的了,其他的更枯燥無味,沒體會到有趣,算是萌新學習課程了。
建議可以去B站上面看影片多學習,然後就是自己手動實踐,多畫圖記憶。程式碼的話,剛學做到理解,能簡單寫點就Ok了。
-
3 # 程式設計少先隊
凡資料結構書用虛擬碼寫的,都是在耍流氓。還美名其曰:程式設計本質都一樣的。正確的廢話一句。對於一個初學者,才開始接觸資料結構和演算法,整本書上居然一個能執行得了,能跑得通的玩具程式都沒有,讓其自行腦補?就是故作高深,誠心不讓你學懂而已。
-
4 # hahahahalehaha
教學的大問題,只說了這個東西是什麼,內部是怎麼樣的,但沒有在一開始說明為什麼要有這個東西,這東西有什麼用,領域背景沒有介紹清楚
-
5 # Cofire
計算機理論與實踐都是計較抽象的,所以剛開始理解起來困難,不過入門之後就簡單了,耐心、毅力,對學習來說是必需品。
-
6 # 泡泡魚54197271
我覺得是教材編寫次序有問題。我理解順序應該是,
1.說明各種資料結構的使用場景,優缺點。
2.直接在已經實現了資料結構的封裝類上給些有趣的呼叫例子。
3.再一個個說每個資料結構的原理和實現方式。
-
7 # glsensor
資料結構,是用來壓縮空間時間的東西,也就是提高效率,當能加快執行速度就是壓縮時間,當能減少記憶體佔用就是壓縮空間,工作中會有造好的輪子給你用,但最好能理解裡面的原理。
-
8 # 一步一步學程式設計
資料結構是研究資料儲存方式,以及不同儲存結構進行不同操作的技術。一般資料結構分為線性資料結構和非線性資料結構。。一組資料,該怎麼儲存 怎麼操作,這就是資料結構要研究的內容。
-
9 # 河漢清且淺
不知道你們之前有沒有開C語言一類的課程,如果沒有,那這個課程設定的不合理。說實話我覺得資料結構真的是我上過最燒腦的一門課,大二時候開的,那時候也是之前沒學過程式語言,當然也就沒有上機寫過程式,結果老師講的啥完全不知所云,後半學期完全放棄連課都不去上了。後來過了很久,因為那時候想找開發類的工作就在mooc上重學了這門課,才算是真正學到了一點東西。資料結構簡單的講,就是教你怎麼能儘可能快的處理大量資料。舉個例子叫你給10個數字排序你覺得很簡單,那1萬個數呢?100萬個數呢?當資料量非常龐大的時候不僅人算不出來,甚至計算機都要算幾百年都不一定算得出結果。總之這門課對於僅僅高中數學水平的人來說理解非常困難,在學習過程中一定要搭配上機程式設計反覆思考才能理解那些什麼氣泡排序,二叉樹遍歷以及最短路徑之類的問題。所以如果你真的想學會它而學校的課程設定又這麼扯淡,那就先靠背過了這門課,然後到mooc上學一門程式語言,C或者C++,然後再去學資料結構的mooc,推薦浙大陳越老師的課。
-
10 # 新乞丐9360348467l84
虛擬碼其實並沒錯,但是這些東西都是很抽象的,如果無法應用到實際問題中,的確理解起來會很困難。你可以這樣子理解資料結構,本質上就是放東西的箱子、盒子、管子、瓶子之類的容器,容器上有幾個開口,可以從不同的開口放東西進去,又或者拿東西出來。每個開口拿和放的邏輯不一樣。解決演算法問題的時候,就是考慮用什麼樣的容器組合起來,從哪個口不斷放東西進去,然後另一個口就可以按照你要求的邏輯順序拿東西出來了。
比如陣列就是一個冰箱冰格一樣格子間,每個格子都有序號,你可以隨便拿隨便放,但是格子的總數是有限的。連結串列就是一串項鍊,每次只能知道一顆珠子的上下兩顆分別是什麼。佇列就是一根管子,從一頭放珠子進去,另一頭拿珠子出來,順序是固定的。棧就是餅乾箱,先放進去的餅乾總在最下面,上面的餅乾不拿出來,下面的餅乾就只能放裡面發黴。樹和圖比較好理解(雖然儲存結構會比較複雜)。堆麼,比較難以形容,你可以理解為房地產開發商,你想買多大的房子跟他講,他總能給你找來理想的空屋子。資料結構的具體表現,就是如何將這些容器用不具有歧義性的計算機語言來定義,確保你解決問題的時候能有這些抽象的資料容器來整理分解資料。至於虛擬碼,其實很正常,因為虛擬碼不用考慮很多硬體限制問題,比如指標,資源釋放之類的。這些限制反而會困擾初學者的。如果想有點代入感,那麼就考慮把虛擬碼轉成可以跑的程式碼(儘量選硬體限制少的語言,比如java,js,python,lua之類的比較好)
-
11 # 0代
不會的話網上找資源,比如極客時間講的很清楚。bilibili上也有。最開始學的話自己用草稿紙一步步將過程畫出來
-
12 # 漫漫目975
《資料結構》不是教你具體的程式語言而是演算法。人的認知進化是從具象走向抽象。虛擬碼描述的是抽象的演算法。就像算術和代數的關係。
-
13 # ScholarMartin
儲存器是線性表結構,和陣列一樣,還可以用連結串列表示線性表。
更復雜的還有樹和圖的結構。
虛擬碼就是簡化的自然語言,就那麼幾個典型結構,一步步照著做就會了。
比如,單向連結串列在表頭插入:想象一串回形針掛在釘子上,整串拿起來,掛在一個回形針上,再掛回牆上。
pList是掛一串回形針的釘子
pNew是掛一個回形針的釘子
pNew.pNext = pList; // 整串掛在一個回形針上
pList = pNew; // 掛回釘子上
-
14 # Stanley061410
上網啊,這年頭網路多方便啊!網上有可以跑的程式碼!先看書,然後看虛擬碼,再看別人的實現程式碼。理解消化,最後自己寫出來,這樣你就明白了!資料結構很重要,如果你以後從事計算機軟體開發的工作就要學好它!這東西不難,相信你能搞定!
-
15 # 知道不知道應知道
資料結構課程的本質是從資料組織和處理方法的角度教會你基本演算法邏輯和思維。這句話可能都得理解一下。不知你是哪個學校,居然在大一開資料結構。
-
16 # tanglengshan
通用計算機採用馮紐依曼方式,就是程式控制的儲存和運算器結構。
51微控制器資料結構就比較直觀,例如堆疊資料先進先出。
高階語言資料結構就比較抽象,開始是資料型別,然後是資料結構。
-
17 # 只留清氣滿人間
大學實行因材施教,不同層次的大學,教材的難易程度不一樣。
如北大清華等頂尖大學,教材更重理論,抽象層次比較高。
不少二本大學,往往選擇更重實際應有的教材,抽象層次比較低。
也有些中等水平的大學,為了提升辦學檔次,教材選用向頂尖大學看齊。
資料結構和演算法是計算機資訊類專業的重要課程,教材眾多,從理論到技能,各個層次的教材都有,為方便學習,可以選擇不同層次的教材作為參考書。
-
18 # 高灘雅客
這麼說吧,資料結構是計算機科學專業的一門核心課程,它的研究物件為問題求解方法,程式設計方法及一些典型資料結構的演算法。
也就是說,程式設計,程式編寫,問題求解,演算法的基礎和核心就是資料結構。
資料結構中的基本資料型別,如列舉,指標,陣列,文字串,記錄,檔案,是程式設計和程式設計的基礎。
資料結構裡的多資料集,比如表,樹,集合,圖,字典等在面向物件程式設計中非常有用。
資料結構中的棧,佇列,連結串列,遞迴是計算機科學和數學中的一個極其重要的問題求解工具。
開始學是比較枯燥和難懂,但是一旦理解並實際應用,特別是解決了複雜求解問題,就非常有成就感了。
推薦一本國外教材,有原始碼可以上機編譯執行,幫助理解和應用。
-
19 # 莫道生
資料結構總地來說就是講資料在計算機裡是怎麼存的、怎麼用的。
講完基本是怎麼存怎麼用之後,又教你用什麼樣的方法才能高效地去訪問它們、存取它們、操作它們。
光學書本上的虛擬碼是根本不夠用的,也很難懂。學的時候你必須要基於一種程式語言,將虛擬碼轉成程式語言,上機反覆除錯。 在寫程式碼和反覆除錯的過程中,你會對資料結構有更深的瞭解。
一年級就學資料結構,肯定會遇到很多困難。尤其是如果你沒有比較好的程式設計基礎,就會更覺得困難。
唯一解決的方法就是努力多讀多理解課本知識,能熟練使用一門程式語言用於除錯虛擬碼。可以多看幾個版本的教材,更利於理解掌握。
把每個虛擬碼轉換成程式程式語言,並且除錯透過,是掌握資料結構基本知識的終極方法。
回覆列表
資料結構是資料的儲存和執行方式,聽不懂是因為沒見過,沒用過。多找些例子,看看,自己試著寫寫。研究下每種資料結構的特點和用途,就慢慢有感覺了。