关于线性表删除元素的一点小问题?
StatusListDelete_Sq(SqList&L,inti,ElemType&e){if((i<1)||i>L.length))returnERROR;p=&(L...
Status ListDelete_Sq(SqList &L,int i,ElemType &e)
{
if((i<1)||i>L.length)) return ERROR;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.length-1;//表尾元素的位置
for(++p;p<=q;++p) *(p-1)=*p;
--L.length;
return OK;
}//ListDelete_Sq
1.ElemType &e 是指e的类型还是e的地址的类型?
2、e = *p这句,为什么要把删除的元素赋给e呀,直接覆盖不就行了?
3、q=L.elem+L.length-1 和 q = &L.elem[L.length - 1]一样的吧?
4、关于L.elem,删除一个元素之后,它的基址是什么情况呀,和原来的一样(对基址这玩意一点不知道…………) 展开
{
if((i<1)||i>L.length)) return ERROR;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.length-1;//表尾元素的位置
for(++p;p<=q;++p) *(p-1)=*p;
--L.length;
return OK;
}//ListDelete_Sq
1.ElemType &e 是指e的类型还是e的地址的类型?
2、e = *p这句,为什么要把删除的元素赋给e呀,直接覆盖不就行了?
3、q=L.elem+L.length-1 和 q = &L.elem[L.length - 1]一样的吧?
4、关于L.elem,删除一个元素之后,它的基址是什么情况呀,和原来的一样(对基址这玩意一点不知道…………) 展开
1个回答
展开全部
1.ElemType &e 是指e的类型还是e的地址的类型?
答:是ElemType类型。&是指地址传递。
2、e = *p这句,为什么要把删除的元素赋给e呀,直接覆盖不就行了?
答:还记得e是一个地址传递的参数么?这句就是把原来p指向的值传出去。
3、q=L.elem+L.length-1 和 q = &L.elem[L.length - 1]一样的吧?
答:正确。
4、关于L.elem,删除一个元素之后,它的基址是什么情况呀,和原来的一样
答:和原来一样。没有变。变得只是L的长度而已。--L.length;这句。
答:是ElemType类型。&是指地址传递。
2、e = *p这句,为什么要把删除的元素赋给e呀,直接覆盖不就行了?
答:还记得e是一个地址传递的参数么?这句就是把原来p指向的值传出去。
3、q=L.elem+L.length-1 和 q = &L.elem[L.length - 1]一样的吧?
答:正确。
4、关于L.elem,删除一个元素之后,它的基址是什么情况呀,和原来的一样
答:和原来一样。没有变。变得只是L的长度而已。--L.length;这句。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询