建立长度为n的单链表,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。(处理的数据类型为字符型。必须使用链表完成。)
输入
第一行为链表长度n;
第二行为链表中的n个数据元素的值。
输出
逆置后的原始的值。
样例输入
10
ABCDEFGHIJ
样例输出
J I H G F E D C B A
#include<stdio.h>
#include<stdlib.h>
struct node
{
char data;
struct node *next;
};
void creatlist(node *&l,char a[],int n)
{
int i;
node *s;
l=(node *)malloc(sizeof(node));
l->next=NULL;
for(i=0;i<n;i++)
{
s=(node *)malloc(sizeof(node));
s->data=a[i];
s->next=l->next;
l->next=s;
}
}//采用头插法
void displist(node *&l)
{
node *t=l->next;
while(t!=NULL)
{
printf("%c ",t->data);
t=t->next;
}
}
int main()
{
char a[200];
int i,n;
node *l;
scanf("%d",&n);
getchar();//单个字符输入时应用getchar函数吸收回车
for(i=0;i<n;i++)
{
scanf("%c",&a[i]);
}
creatlist(l,a,n);
displist(l);
return 0;
}