插入堆栈中的元素时show函数出错

时间:2015-03-27 13:04:25

标签: c data-structures stack

我正在编写代码来推送和弹出堆栈中的元素但是我的show函数无法正常工作并且无限打印内存地址

typedef struct Stack
 {
   int info;
   struct Stack *next;
 }
  stack;
  stack *head;

// x要插入的元素

  void push(int x)
  {
     stack *ptr;
     stack *ptr1;

//分配大小

     ptr=(stack*)malloc(sizeof(stack));
     ptr->info=x;
     if(head==NULL)
      {
       ptr->next=NULL;
       head=ptr;
      }
     else
      {
      ptr1=head;
      while(ptr1->next!=NULL)
      {
      ptr1=ptr1->next;
      }
      ptr1->next=ptr;
      ptr->next=NULL;
     }
   }

//显示打印输出的函数

   void show()
    {
    stack *ptr=head;
    while(ptr!=NULL)
      {
      printf("%d\n",ptr->info);
      ptr=ptr->next;
  }

} 
  void pop()
  {
    stack *ptr=head;
    while(ptr->next!=NULL)
     {
     ptr=ptr->next;
     }
     free(ptr);
   }

0 个答案:

没有答案