問題:資料結構是幹什麼用的呢?
我們這學期開資料結構c語言版,已經過去半學期了,還是沒有頭緒。去年已經學過c與c++了,覺得已經可以編寫程式了呀?然後我們為什麼還要學習資料結構呢?學習什麼鍊錶,插入刪除資料,看**,覺得很複雜。這是幹什麼用的呢?c或c++裡不就已經可以插入資料,儲存資料麼?建個陣列,運用指標不就可以很方便麼?還要費這勞什子自己寫一大串**就是為了建個鍊錶能存兩個資料?
回答一:
鍊錶的好處在於不用使用連續的記憶體,而是利用記憶體中分散的儲存單元儲存資料;而且鍊錶的長度是可以任意增刪的,但陣列一旦申請就不能改變,這根本不能滿足資料的動態儲存;再加上陣列的刪除和插入元素會使大片的資料進行移動,這就增加了運算量;
好好學吧,剛開始我也覺得稀里糊塗的,但考研不得不再看了幾遍,覺的資料結構的思想還是很好的,不說各種排序和圖、二叉樹的演算法設計,單單乙個棧就是很深奧的,他可以將一些複雜難懂的遞迴演算法,拆解改寫,讓你對這些演算法一目了然。自己好好體會吧,有些東西並不向你看到的那麼簡單。
回答二:
資料結構是一種思想工具,就像我們用杯子喝水,用筷子吃飯一樣,這裡的杯子和筷子就是資料結構,如果我們不具有這樣的思想,那我們只能趴下喝河水,用手抓東西吃。
舉乙個例子,假如我們要做乙個錘子(金工實習的那種),我們需要什麼,僅有兩塊鐵行嗎?不行的,我們必須還要有車床,還要有砂紙等工具。所以我們要製作錘子,就要具有一定的工具。現在又有乙個問題提出來了,可以不用工具嗎?可以,但是你會浪費很多的時間和精力。資料結構就是為了製作工具而發明的,有了工具,解決問題就容易的多了。
再來乙個程式例子:
假如我們在c語言的學習中,沒有學習陣列(陣列就是一種資料結構),我們要對10個數進行排序,我們要怎麼做。至少你得定義10個變數,int i1~i10,然後就是大量的重複勞動,並且這個過程很容易把人給搞昏掉。但如果我們用陣列做的話,問題就顯得容易的多了,我們對資料的操作,直接可以用陣列下標來實現,這大大提高了程式的編寫效率。這就資料結構的魅力!
回答三:
機的排列在資料中,要是用陣列的話:1在該位址填無用**(記憶體不釋放)2刪除該陣列中這些成員,把陣列重新排列一下運用鍊錶的話就很簡單了 把指標一改,ok!
學習資料結構
佇列 queue 先進先出 fifo queue.push為入隊,pueue.shift為出隊,由這兩項組成佇列 棧 stack 後進先出 lifo 順序儲存資料 鍊錶linked list 雙向鍊錶 每個節點有乙個previous指向上乙個節點 迴圈鍊錶 最後乙個節點的next指向頭節點 定義 是...
資料結構 學習資料結構的學習筆記之串
計算機中對非數值處理基本上為字串資料,對於字串的處理要比數值處理難度大,因而更為重要!串的定義 長度 相等等就不提啦。對串的最小操作集是 1 串賦值 strassgin 2 串比較 strcompare 3 求串長 strlength 4 串聯接 concat 5 求字串 substring 其他操...
資料結構 map的學習
main.cpp map使用 created by 劉鑫偉 on 14 7 25.include include includeusing namespace std int main 清空map中的資料可以用clear 函式,判定map中是否有資料可以用empty 函式,它返回true則說明是空m...