算法(c),顺序表的就地倒置,利用原表的存储空间将线性表(a1,a2,''',an)倒置为(an,an-1,''',a1).
答案:2 悬赏:10
解决时间 2021-02-20 09:36
- 提问者网友:孤笛钟情你
- 2021-02-19 18:56
就地倒置,不是只能用原表的存储空间吗? 不能借用其他的空间
我不知道我说的对不对,有可能我题目理解错了
最佳答案
- 二级知识专家网友:努力只為明天
- 2021-02-19 19:01
比较优美的算法如下:
void reverse(int a[], int size)
{
int i,j,tmp;
for(i=0, j=size-1; i<j; i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
void reverse(int a[], int size)
{
int i,j,tmp;
for(i=0, j=size-1; i<j; i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
全部回答
- 1楼网友:厌今念往
- 2021-02-19 19:07
void reverse(node *head)
{
node *a,*b,*c;
node *a=head;
if(a->next)//如果a有下一个节点
{
b=a->next;
if(b->next)//如果b有下一个节点
{
while(true)//循环,使每个节点指向前一个节点
{
if(b->next)
{
c=b->next;
b->next=a;
}
else
{
b->next=a;
break;
}
a=b;
b=c;
}
else//如果只有两个节点
b->next=a;
a->next=null;
}
//else只有一个节点
}
是这样:a->b->c是原链表中的节点顺序,循环改变链接为a<-b c,然后a=b,b=c;node是节点,next是node中的一个变量指向下一个节点,也不知道对不对,大概就是这个意思吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |