题目一
试写一算法,对单链表实现就地逆置
思想
将p指向L的下一个结点,L置空;然后利用 头插法插入是倒序的 将所有元素头插法插入到序列L中
代码
Status T222(LinkList L)
{
LinkList pre,p;
if(!L||!L->next)
return ERRPR;
p=L->next;
L->next=NULL;
while(p)
{
//头插法
pre=p;
p=p->next;
pre->next=L->next;
L->next=pre;
}
return OK;
}
题目二
试写一算法,对顺序表实现就地逆置
思想
两两交换,第一个和最后一个,第二个和倒数第二个…直到到了中间位置
代码
Status T221(SqList L)
{
int i,j;
LElemType tmp;
if(L.length=0)
return ERROR;
for(i=1,j=(L.length/2);j<=i;j++)
{
tmp=L.elem[j-1];
L.elem[j-1]=L.elem[L.length-j];
L.elem[L.length-j]=tmp;
}
return OK;
}