最贊回答 / Lavi_La
(1)currentnode是這個指針類型的變量,它也是需要占據一定的內存來存儲數據的,存放的就是它指向內存的地址,釋放掉的currentnode指向的內存,即解除currentnode和它指向的內存的關系,currentnote占據的內存還是存在的。下面是我畫的圖希望對你有幫助。<...圖片...>(2)一般可以認為new和delete是互為對應的
2016-09-16
已采納回答 / 慕粉3921911
因為索引從零開始,最后一個元素是length-1,不是length,比如說有4個元素,長度為四,索引分別為0,1,2,3,所以最后一個是4-1,而不是4
2016-09-13
最新回答 / 黑巫師0
老師這樣定義的? int temp;?? 是一個整型變量,當調用刪除函數是傳入的實參是 &temp,是為將刪除的元素能存入到temp中。你提出的 cout<<temp<<endl ; 這是是輸出temp的值。要輸出它的地址應該寫成cout<<&temp<<endl ; 希望對你有幫助。
2016-09-12
最贊回答 / 黑巫師0
其實我也覺得應該這樣,刪除函數應該有判空操作,線性表為空的話,直接返回false;插入函數應該有判滿操作,線性表已滿時也直接返回false,這樣應該更嚴謹一些。
2016-09-06
最新回答 / 黑巫師0
定義的臨時結點指針currentNode經過循環之后指向鏈表的尾結點,因為它是指針變量,存放的是尾結點的地址,所以通過它來改變鏈表本身尾結點的指向是完全行得通的。即currentNode->next = NewNode? 就等效于鏈表自己的指向尾節點的節點的next指向newNode!希望對你有所幫助~
2016-09-05
已采納回答 / 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
最新回答 / kming
因為在c語言中沒有對象這個東西,函數和數據是獨立的,函數要處理List *list,肯定要作為參數傳進來,才能知道函數要處理的是List *list,c++里面這個函數是對象的成員函數,要處理的就是對象本身的數據,可以省略,也可以傳入*this
2016-08-28
最新回答 / Posin丶biting
不知道你問的是順序表還是鏈表,如果是順序表的話就是要刪除元素后一位元素開始,依次往前移動一位即可。然后Length--就可以了。鏈表的話,這樣應該說不通!
2016-08-22
已采納回答 / 慕粉13141201042
m_pList->next = newNode;newNode->next = temp;這兩行代碼的順序應該反過來?。。?/div>
2016-08-06
- 課程須知
- "本課程是數據結構初級課程 1、熟練掌握C++語言基礎語法"
- 老師告訴你能學到什么?
- 1、順序表的工作原理 2、順序表的實現方法及編碼技巧 3、鏈表的工作原理 4、鏈表的實現方法及編碼技巧 5、通訊錄的實現原理及編碼技巧
微信掃碼,參與3人拼團