1.题目:

2.数组:
void array()
//设i,j分别指向a[0]和a[elenum-1],每次循环将二者值交换,直到 i>mid
{
int mid = (elenum-1)/2;
for(int i = 0,j = elenum-1; i <= mid; i++,j--)
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
for(int i = 0; i < elenum; i++)
{
cout << a[i] << " ";
}
cout << '\n';
return;
}
3.链表:

void list(Node* head)
{
//链表的就地逆置
Node *p,*r;
p = head->next;
head->next = NULL;
//第一步
while(p != NULL)
{
r = p->next;
p->next = head->next;
head->next = p;
p = r;
}
Node *temp = head->next;
while(temp != NULL)
{
cout << temp->num << " ";
temp = temp->next

这篇博客介绍了线性表的就地逆置问题,分别探讨了针对数组和链表的解决方案。在实际操作中,由于输入只进行了一次,导致数组逆置后,系统等待再次输入以执行链表逆置,这个问题在调试中耗费了较长时间才发现。此外,文章还提到了在调试过程中遇到的cout<<endl卡住的问题,通过将endl改为'
'得到了解决。
最低0.47元/天 解锁文章
1413

被折叠的 条评论
为什么被折叠?



