数据结构问题 C语言解答 线性表的就地逆置

 我来答
My_Persistence
推荐于2017-12-16 · TA获得超过3468个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:437万
展开全部
//逆置顺序表中的元素的算法
void SeqListReverse(SeqList *L)
{
int temp,i;
for(i=0;i<L->length/2;i++)
{
temp=L->data[i];
L->data[i]=L->data[L->length-1-i];
L->data[L->length-1-i]=temp;
}
}
/*逆置单链表中的元素的算法*/
void LinkedListReverse(LinkedList L)//其中LinkedList等价于LNode *
{
LinkedList p,q;
if(L->next && L->next->next)
{
q=p=L->next;
q=q->next;
p->next=NULL;

while(q)
{//每次循环将后一个结点变成新链表的第一个结点
p=q;
q=q->next;
p->next=L->next;
L->next=p;
}
}
}

上面的两个算法我都用完整的C源程序测试过了,没有问题的,希望这个对你有帮助哦,望采纳啊。如果你需要完整的源程序,请在评论里留言吧。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式