學習數據結構的原因

問題:數據結構是幹什麼用的呢?

我們這學期開數據結構C語言版,已經過去半學期了,還是沒有頭緒。去年已經學過C與C++了,覺得已經可以編寫程序了呀?然後我們爲什麼還要學習數據結構呢?學習什麼鏈表,插入刪除數據,看代碼,覺得很複雜。這是幹什麼用的呢?C或C++裏不就已經可以插入數據,存儲數據麼?建個數組,運用指針不就可以很方便麼?還要費這勞什子自己寫一大串代碼就是爲了建個鏈表能存兩個數據?

回答一:

鏈表的好處在於不用使用連續的內存,而是利用內存中分散的存儲單元存儲數據;而且鏈表的長度是可以任意增刪的,但數組一旦申請就不能改變,這根本不能滿足數據的動態存儲;再加上數組的刪除和插入元素會使大片的數據進行移動,這就增加了運算量;

好好學吧,剛開始我也覺得稀裏糊塗的,但考研不得不再看了幾遍,覺的數據結構的思想還是很好的,不說各種排序和圖、二叉樹的算法設計,單單一個棧就是很深奧的,他可以將一些複雜難懂的遞歸算法,拆解改寫,讓你對這些算法一目瞭然。自己好好體會吧,有些東西並不向你看到的那麼簡單。

回答二:

數據結構是一種思想工具,就像我們用杯子喝水,用筷子吃飯一樣,這裏的杯子和筷子就是數據結構,如果我們不具有這樣的思想,那我們只能趴下喝河水,用手抓東西吃。

舉一個例子,假如我們要做一個錘子(金工實習的那種),我們需要什麼,僅有兩塊鐵行嗎?不行的,我們必須還要有車牀,還要有砂紙等工具。所以我們要製作錘子,就要具有一定的工具。現在又有一個問題提出來了,可以不用工具嗎?可以,但是你會浪費很多的時間和精力。數據結構就是爲了製作工具而發明的,有了工具,解決問題就容易的多了。

再來一個程序例子:

假如我們在c語言的學習中,沒有學習數組(數組就是一種數據結構),我們要對10個數進行排序,我們要怎麼做。至少你得定義10個變量,int i1~i10,然後就是大量的重複勞動,並且這個過程很容易把人給搞昏掉。但如果我們用數組做的話,問題就顯得容易的多了,我們對數據的操作,直接可以用數組下標來實現,這大大提高了程序的編寫效率。這就數據結構的魅力!

回答三:

程序不是用來玩的,或者說大部分有用的程序都是用來處理數據的,你做個mp3播放器,你如何給mp3解碼?你需要把音樂的代碼放到內存裏,然後在解碼,數據如何在內存裏存儲?這就是數據結構。

對於鏈表,如果你需要高速處理數據,比如做個mp3播放器,你要刪除一部分錯誤的音樂代碼,並且這些代碼很隨

機的排列在數據中,要是用數組的話:1在該地址填無用代碼(內存不釋放)2刪除該數組中這些成員,把數組重新排列一下運用鏈表的話就很簡單了 把指針一改,ok!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章