#include <stdio.h>
#include<malloc.h>
typedef struct student
{
char name[10];
char num[10];
char gender[3];
int age;
char gread[15];
char condition[15];
struct student *next;
}Lnode,*linklist;
typedef linklist Elemtype;
void createList(linklist *L,int n)
{
int i;
linklist p2,p1;
p1=(*L)=(linklist)malloc(sizeof(Lnode));
//scanf("%s %s %s %d %s
%s",p1->name,p1->num,p1->gender,&p1->age,p1->gread,p1->condition);
for(i=1;i<=n;i++)
{
p2=(linklist)malloc(sizeof(Lnode));
scanf("%s %s
%s %d %s
%s",p2->name,p2->num,p2->gender,&p2->age,p2->gread,p2->condition);
p1->next=p2;
p1=p2;
}
p1->next=*L;
}
typedef struct stack{
Elemtype *top;
Elemtype *base;
int length;
}sqstack;
void InitStack(sqstack *S,int n){
S->base=S->top=(Elemtype
*)malloc(sizeof(Elemtype)*(n+1));
S->length=0;
}
void Push(sqstack *S,Elemtype e){
*(S->top)=e;
S->top++;
S->length++;
}
Elemtype Pop(sqstack *S){
Elemtype temp;
temp=*(S->top-1);
S->top--;
S->length--;
return temp;
}
void Traverlist(linklist L){
linklist p=L->next;
while (p->next)
{
printf("%s %s %s %d %s
%s\n",p->name,p->num,p->gender,p->age,p->gread,p->condition);
p=p->next;
}
printf("%s %s %s %d %s
%s",p->name,p->num,p->gender,p->age,p->gread,p->condition);
}
void Reuerse(linklist L,int n )
{
linklist p;
linklist q;
sqstack S;
int i;
InitStack(&S,n);
p=L->next;
for(i=1;i<=n;i++){
Push(&S,p);
p=p->next;
}
q=L;
for(i=1;i<=n;i++){
p=Pop(&S);
// printf("%s %s %s %d %s
%s\n",p->name,p->num,p->gender,p->age,p->gread,p->condition);
q->next=p;
q=p;
}
q->next=NULL;
Traverlist(L);
}
void main()
{
linklist head=NULL;
int n;
scanf("%d",&n);
createList(&head,n);
Reuerse(head,n);
}
http://s8/middle/67cf65abx89b2dc8f1ec7&690
加载中,请稍候......