怎样把结果正过来?
#include<stdio.h>#include<stdlib.h>
typedef void Status;
typedef int ElemType;
typedef struct Lnode
{
ElemType data;
struct Lnode *next;
}Lnode,*LinkList;
Status InitList(LinkList &L)
{
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
}
Status CreateList_L(LinkList &L,int n)
{
LinkList p;
int i;
InitList(L);
for(i=n;i>0;i--)
{
p=(LinkList)malloc(sizeof(Lnode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
Status OutList_L(LinkList &L,int n)
{
LinkList p;
int i;
p=L->next;
for(i=1;i<=n;i++)
{
printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
Status ReverseList_L(LinkList &L,int n)
{
int i;
LinkList p;
LinkList a;
LinkList b;
a=L;
p=a->next;
a->next=NULL;
b=p->next;
p->next=a;
a=p;
p=b;
while(b!=NULL)
{
b=p->next;
p->next=a;
a=p;
p=b;
}
p=a;
for(i=1;i<=n;i++)
{
printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
int n,m;
printf("请输入元素的个数:");
scanf("%d",&n);
LinkList L;
CreateList_L(L,n);
printf("输出数据:1\n");
printf("逆置:2\n");
printf("退出:0\n");
scanf("%d",&m);
switch(m)
{
case 1:OutList_L(L,n);break;
case 2:ReverseList_L(L,n);break;
default:printf("error\n");
}
}
输出的结果是输入结果的倒置,怎样正过来?