写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 19:58:54
写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,...a2,a1).
运行过了,没有任何问题,有什么不明白的可以交流下!
#include
int main()
{
typedef struct Lnod
{
int data;
struct Lnod *next;
}Lnod,*Linklist;
Linklist p,m,n,r,L,a,b;
int i;
L=(Linklist)malloc(sizeof(Lnod)*5);
if(!L)exit(0);
L->next=NULL;
for(i=0;idata);
p->next=L->next;
L->next=p;
}
a=L->next;
printf("原来的链表中的元素为:\n");
while(a)
{
printf("%d,",a->data);
a=a->next;
}
printf("\n");
m=L->next;
n=m->next;
while(n->next)
{
r=n->next;
n->next=m;
m=n;
n=r;
}
n->next=m;
L->next->next=NULL;
L->next=n;
b=L->next;
printf("\n\n逆置之后链表中的元素为:\n");
while(b)
{
printf("%d,",b->data);
b=b->next;
}
printf("\n");
return 0;
}
c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!
#include
int main()
{
typedef struct Lnod
{
int data;
struct Lnod *next;
}Lnod,*Linklist;
Linklist p,m,n,r,L,a,b;
int i;
L=(Linklist)malloc(sizeof(Lnod)*5);
if(!L)exit(0);
L->next=NULL;
for(i=0;idata);
p->next=L->next;
L->next=p;
}
a=L->next;
printf("原来的链表中的元素为:\n");
while(a)
{
printf("%d,",a->data);
a=a->next;
}
printf("\n");
m=L->next;
n=m->next;
while(n->next)
{
r=n->next;
n->next=m;
m=n;
n=r;
}
n->next=m;
L->next->next=NULL;
L->next=n;
b=L->next;
printf("\n\n逆置之后链表中的元素为:\n");
while(b)
{
printf("%d,",b->data);
b=b->next;
}
printf("\n");
return 0;
}
c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!
写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,
以单链表为存储结构,写一实现线性表就地逆置的算法(用C++写)
数据结构中有试写一算法,实现顺序表的就地逆置
将单链表(a1,a2,a3.an-1,an)转换成(an,an-2,...,a2,a1,a3,...,an-1)的算法
在数列an中,a1=1,a2=2,数列{an*an+1}是公比为q的等比,若an*an+1+an+1*an+2>an+2
“在等比数列{an}中,a1+an=66,a2*an-1=128,求n及公比q"这个问题的过程A2*An-1=A1*An
在以d为公差的等差数列an中,设S1=a1+a2.+an,S2=an+1+an+2+a2n,S3=a2n+1+a2n+a
已知数列{An}满足A1,A2-A1,A3-A2,…An-An-1,…是首项为1,公比为三分之一的等比数列.求数列{An
数列{an}中,a1,a2-a1,a3-a2,…,an-an-1…是首项为1、公比为13的等比数列,则an等于 
已知数列{an},若a1,a2-a1,a3-a2,a4-a3,an-an-1是公比为2的等比数列,则{an}的前n项和s
在数列{an}中,已知a1=1/3,a1+a2+.+an/n=(2n-1)an (1)求,a2,a3,a4,并猜想an的
一个数列{an},其中a1=3,a2=6,an+2=an+1-an,那么这个数列的第五项是( )