为什么要把m_pList[i]拷贝给*e?

来源:2-5 顺序表编码实战(四)

T松子

2018-12-13 20:26

bool List::ListDelete(int i,int *e){    
if(i<0||i>=m_iLength){        
return false;    
}       
 *e = m_pList[i];        
 for(int k=i+1;k<m_iLength;k++){     
    m_pList[k-1] = m_pList[k];    
   }    
   m_iLength--;    
   return true;
}
在删除函数ListDelete()中代码*e = m_pList[i];有什么作用,没有看到用到*e啊。为什么要把m_pList[i]中的内容拷贝出来呢?


写回答 关注

3回答

  • 慕婉清5403551
    2018-12-14 13:51:40
    已采纳

    严格来讲是没有用的,之所以这样写是为了在测试的时候,看一下我们删除的对不对,通过*e就可以看出来

    T松子

    明白了,谢谢

    2018-12-16 10:29:22

    共 1 条回复 >

  • HackerLZH
    2020-02-11 15:20:42

    老师是为了让我们对过程更加清晰,并且与前面的插入对应,先完成取出来的动作。但是实际上可以不需要*e,因为你本来就是要把它删除,所以直接将前面元素左移,直接覆盖也是可以的。


    T松子

    和一楼的想法差不多,就是为了取出这个数(也可以说暂时存一下这个数),目的是为了在测试的时候,能直观看到删除的就是这个数。

    2020-02-11 16:37:24

    共 1 条回复 >

  • 慕婉清5403551
    2018-12-14 13:52:55

    你把形参里面的*e去掉,再把 *e = m_pList[i];去掉,对删除函数没有本质的影响

数据结构探险之线性表篇

线性表的主体顺序表和链表,让学员能够将知识融会贯通学以致用

57569 学习 · 257 问题

查看课程

相似问题