C语言实现线性表的逆置问题,顺序和单链表。在线等高手
2个回答
展开全部
逆置有两种方法,第一是把所有节点反过来。还有一种就是改变节点中的值。
第一种情况,其实可以考虑用头插法,来实现逆置。
下面的算法是基于头插法的思想,逆置链表的,仅供参考。
LinkList anti_linklist(LinkList demo)
{
LInkList *p,*q;//work pointer
LinkList head;
head=new LinkList();
head->next=null;//init head pointer
p=demo->head->next;//make p points to the first node
if(p==null)
return null;//the linklist is null
while(p!=null)
{
q=p;
q->next=head->next;
head->next=q;
p=p->next;
}
}
这个是我回答之前的一个问题的答案。供你参考。
第一种情况,其实可以考虑用头插法,来实现逆置。
下面的算法是基于头插法的思想,逆置链表的,仅供参考。
LinkList anti_linklist(LinkList demo)
{
LInkList *p,*q;//work pointer
LinkList head;
head=new LinkList();
head->next=null;//init head pointer
p=demo->head->next;//make p points to the first node
if(p==null)
return null;//the linklist is null
while(p!=null)
{
q=p;
q->next=head->next;
head->next=q;
p=p->next;
}
}
这个是我回答之前的一个问题的答案。供你参考。
展开全部
#include<stdio.h>
type revert(type const *typeArray ,int length )
{
for(int i = 0;i<length;i++)
{
type temp = typeArray[i];
typeArray[i] = typeArray[length-1-i];
typeArray[length-1-i] = temp;
}
}
自己写main函数调用,把所有type换成你要用到的类型(int、float等),如果是char, typeArray[length-1-i]换成typeArray[length-2-i]。(最后一个字符是‘\n’)。C语言无法知道数组中已经赋值的元素的个数,唯一的办法是你自己在初始化数组的时候记录数组长度length。
type revert(type const *typeArray ,int length )
{
for(int i = 0;i<length;i++)
{
type temp = typeArray[i];
typeArray[i] = typeArray[length-1-i];
typeArray[length-1-i] = temp;
}
}
自己写main函数调用,把所有type换成你要用到的类型(int、float等),如果是char, typeArray[length-1-i]换成typeArray[length-2-i]。(最后一个字符是‘\n’)。C语言无法知道数组中已经赋值的元素的个数,唯一的办法是你自己在初始化数组的时候记录数组长度length。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询