问答详情
源自:2-5 顺序表编码实战(四)

关于bool List::ListDelete(int i, int* e)

bool List::ListDelete(int i, int* e)

{

*e = m_pList[i];

for (int k = i + 1; k < m_iLength; k++)

{

m_pList[k - 1] = m_pList[k];   这里可以写成m_pList[i]=m_pList[i+1]吗

}

m_iLength--;

return true;

}


提问者:好嗨难 2020-11-29 18:35

个回答

  • Lei_Ch
    2021-01-20 20:32:51

    m_pList[i]=m_pList[i+1]的话,一定不行, 因为for循环不会改变i值。

    但如果是 m_pList[k]=m_pList[k+1] 需要修改for循环里面对k的赋值和判断,然后可以运行。

    如果不改k的话,是不能实现想要的效果的(会删掉从这个元素 后一个元素的值)。