已采納回答 / Squirre_lMan
你好,我的理解是:clearList只是將節點刪除,但是這個鏈表空間還在,而第一個節點儲存了鏈表空間的地址。所以,要使用ListEmpty才可以完全刪除。(根據數組推斷的,僅供參考)
2017-01-09
已采納回答 / 黑巫師0
老師講的單鏈表是有表頭結點的,表頭結點并不存儲數據,只是一個牽頭作用,方便我們通過它來尋找到鏈表的其他所有元素。因此單鏈表的元素個數也不把它包括在內,第0個結點就是表頭結點的下一個結點。希望對你有所幫助~
2016-12-26
已采納回答 / 慕姐5052964
頭結點前不能插入,因為它data為空,沒有意義吧。頭結點后面的第一個數據算0號數據,listinserthead函數是插在頭結點后面的,遍歷出來結果顯示它的數據在第一個位置上。頭結點data為空,但是指針不為null,它前面不能插入數據。最后一個結點data不為空,指針為null,它的前后都可以插入數據。get函數中不算頭結點,i最小為0,這就是頭結點后面的第一個數據,即0號數據,頭結點data為空,或者說沒有意義,所以不能get 出來。
2016-11-29
已采納回答 / 十二樓中月自明
其實已經刪除了尾節點,currentNode->next != NULL 是沒有刪除尾節點的,而currentNode != NULL表示這個節點為空,即已經刪除了
2016-11-24
已采納回答 / 黑巫師0
頭結點只是一個牽頭的作用,可以通過頭結點來順藤摸瓜找到鏈表中的所有元素,但本身并沒存儲有意義數據,所以作為前驅也就沒有什么意義,因此不用頭結點作前驅。希望能幫到你~
2016-10-08
已采納回答 / 風起了_
m_pList是一個Node*對象,這是對的。next只是一個數據成員,next只是一個指向Node類型的指針,指向下一個結點“在構造函數里面已經m_pList->next = NULL”這是初始化的時候,并沒有插入任何元素,當然應該置為空。插入元素之后,就不會再為空了。
2016-09-29
已采納回答 / 黑巫師0
delete m_pList;?? 這個操作只是將指針m_pList所指向的內存空間釋放掉,使內存重歸操作系統。但m_pList的指向位置并沒有改變,此位置的內存已經被釋放掉了,若再用m_pList訪問這塊內存,系統就會崩潰出錯!為了防止這種誤操作所引起的崩潰出錯。所以將m_pList置為NULL的安全狀態,就避免這種野指針事件的發生。希望對你有所幫助~
2016-09-22
已采納回答 / 慕粉3921911
因為索引從零開始,最后一個元素是length-1,不是length,比如說有4個元素,長度為四,索引分別為0,1,2,3,所以最后一個是4-1,而不是4
2016-09-13
已采納回答 / kming
先找到聯系人位置在刪除,自己寫的,僅供參考void deletePerson(List<Node> *pl,Node *temp){ ? ?Node node; ? ?cout << "請輸入姓名:" << endl; ? ?cin >> node.data.name; ? ?cout << "請輸入電話:" << endl; ? ?cin >> node.data.phone; ? ?int locate = pl-&g...
2016-08-28