Re: [討論] 想重新學好資料結構

作者: james732 (好人超)   2018-01-11 15:07:17
我建議以下兩點
1.一定要親自寫過code,不要只"讀書"
2.如果寫過還難以理解,就要善用IDE的功能單步執行與監看式功能
其實我一開始學資料結構的時候
一直覺得很難想像資料間的關係
譬如說
struct Node
{
struct Node *next;
int data;
};
那個next是什麼鬼看書真的很難理解
struct Node n1, n2, n3;
n1.data = 10;
n1.next = &n2;
n2.data = 20;
n2.next = &n3;
n3.data = 30;
n3.next = NULL;
struct Node *now = &n1;
while (now)
{
printf("now->data %d\n", now->data);
now = now->next;
}
那個 now = now->next; 到底又是什麼啊
就算實際寫過,跑過,看到印出10,20,30
還是會覺得很難理解
不過感謝我們有Debugger,可以單步執行並且看到當時的memory
https://i.imgur.com/0FIEiXd.png
實際一跑就知道它們之間的關係
然後在迴圈裡一直按F10,看它在next的時候now會怎麼變化
這樣一步一步慢慢跑,慢慢看
就可以真的理解這個鬼東西到底在做什麼
接下來更複雜的tree之類的也一樣,如果覺得無法想像的話
就給他單步執行下去就對了
這是我當時學習資料結構的方式
看到那個next真的一個一個串起來的時候好感動啊XD
如果原PO還沒用過單步執行與memory monitor
就裝個Visual studio Community吧
https://www.visualstudio.com/downloads/
隨便寫個程式按F10就可以開始探索這個新世界了XD
作者: boss0405 (boss)   2018-01-11 17:54:00
推一下,這對初學者理解真的很有幫助
作者: cuteSquirrel (松鼠)   2018-01-11 18:50:00
作者: johnny94 (32767)   2018-01-11 19:20:00
這種建議對初學者很有幫助,想當初也是用這個來看 array裡面到底放啥
作者: Hazukashiine (私は幸せです)   2018-01-11 19:57:00
Linux 的 GDB Frontend 推薦 nemiver 個人覺得好用
作者: SecondRun (雨夜琴聲)   2018-01-11 23:27:00
作者: renna038766 (草甜圈)   2018-01-15 01:22:00
QQ 這我期末範圍耶!!!我這邊前幾天也一直想
作者: ax61316   2018-01-15 20:58:00
推這篇,我的方法也類似。 IDE 至少比GDB親民一些

Links booklink

Contact Us: admin [ a t ] ucptt.com