加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用栈实现单链表的逆置

(2010-06-23 21:52:00)
标签:

杂谈

分类: 数据结构作业


#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

0

阅读 收藏 喜欢 打印举报/Report
前一篇:括号匹配问题
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有