看了高一凡的数据结构关于单链表的元素的删除(24页),但是它关于最后一个节点元素的删除时返回ERROR,解释是删除位置不合理,不是很明白,能解释一下吗?
根據embed_xuel的逐步提示去思考,把鏈表的模型理解明白,好過你去看那些只講其然而不講其所以然的書和“高人”代碼。鏈表就是一條鏈,用掛鉤連接的,把鉤斬斷了,後面的結點自然就掉落失去,不是動輒去free()的,假如那個結點不是通過malloc()申請得來的呢,你就free()不去(不要以爲只有動態申請的數據才用鏈表,數據結構沒那麽死板)。
要解開最後一個結點,把倒數第二個結點指向下一個結點的指針(它指向的正是最後一個結點)置空就可以了,至於被解掉的結點要不要釋放內存,視數據的具體情況和後續需要而定。這才是鏈表解結和搭接比別的數據結構快的真正原因。
[ 本帖最后由 TonyDeng 于 2013-9-17 17:53 编辑 ]