链表栈的入栈和出栈操作

链表栈的入栈和出栈操作

#include<stdio.h>

#include<stdlib.h>

typedef int ElemType;

typedef struct  linknode

{

       ElemType data;  //数据域

       struct linknode *next;  //指针域

}ListStack;

//入栈

/*

  已知变量:初始化的栈,存了数据的数组,数组的长度

*/

void Push(ListStack *s,ElemType e)

   ListStack *p;

   p=(ListStack*) malloc(sizeof(ListStack));

   p->data=e;

   p->next=s->next;

   s->next=p;

  

}

//出栈

/*

  存了数据的栈

*/

int  pop(ListStack *s)

  ListStack *temp;

  int e;

  if(s->next==NULL)

  return  0;

  else

  { 

    temp=s->next;

     printf("%d ",temp->data);

     s->next=temp->next;

      free(temp); 

  }

}

//输出栈

void printStack(ListStack *s){

           ListStack *p=s->next;

             while(p!=NULL){

             printf("%d",p->data);

             p=p->next;

      }     

      }

 

int main(){

       int i;

       ListStack *s;

       s=(ListStack*)malloc(sizeof(ListStack));

       s->next=NULL;

       Push(s,5);

       Push(s,8);

       printStack(s);

    pop(s);

    pop(s);

    pop(s);

    Push(s,14);

    pop(s);

      printf("\n");  

}

微笑本内容由安康学院"雨季"原创!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值