[考題] 104年升等薦任資料結構

看板Examination作者 (LOL)時間10年前 (2016/02/01 16:05), 10年前編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/1
附上題目截圖 http://imgur.com/7P0TSnX
想請問第三小題,我一開始想到的解法如下: while (A->rlink != NULL) { A = A->rlink; delete A->llink; } delete A; A = NULL; 邏輯看似是對的,但實際執行時,發現被delete的記憶體空間並不會是NULL,而是亂數 所以當delete到最後一個節點時,此節點的rlink雖然已經被delete了,但不是NULL 導致A->rlink != NULL這個條件判斷變成無限迴圈 這題該怎麼解?不知道版上的朋友有沒有什麼建議? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.120.146 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1454313904.A.368.html ※ 編輯: LoserOfLove (220.133.120.146), 02/01/2016 16:16:12

02/01 16:53, , 1F
A-》llink = null?
02/01 16:53, 1F

02/01 18:27, , 2F
強制給。位址還回去了,但不一定要給你一個非0的地址。
02/01 18:27, 2F
C語言版有人一起想出答案囉 其實就是 A->lLink->rLink = NULL; <==========多加這一行就可以了 while (A->rlink != NULL) { A = A->rlink; delete A->llink; } delete A; A = NULL; 知道答案後覺得不難,當初就是一直鬼打牆想不出來@@ ※ 編輯: LoserOfLove (220.133.120.146), 02/01/2016 21:22:54

02/04 14:27, , 3F
我覺得在A處再設定一指標p 然後去判斷有無循環到p 亦可
02/04 14:27, 3F

03/05 00:33, , 4F
題目說只能用A指標
03/05 00:33, 4F
文章代碼(AID): #1Mhn6mDe (Examination)