博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈的操作链表+数组版
阅读量:5160 次
发布时间:2019-06-13

本文共 1649 字,大约阅读时间需要 5 分钟。

数组实现

 

#include
#include
#define MAXN 1000int isEmpty(const int top){ return !(top+1);}void pop(int *s,int *top){ s[(*top)--]=0;}void push(int *s,int *top){ int x; scanf("%d",&x); s[++*top]=x;}void showStack(int *s,int top){ int i; for(i=0;i

链表实现

 

 

/**c++链表栈push,pop,showStack,isEmpty;*/#include
#include
#include
#include
#include
using namespace std;typedef struct node{ int data; struct node *next;}NODE;NODE* push(NODE *top,int x){ NODE *tmp=(NODE*)malloc(sizeof(NODE)); tmp->data=x; tmp->next=NULL; if(!top){ top=tmp; top->next=NULL; } else{ tmp->next=top; top=tmp; } return top;}NODE* pop(NODE *top){ NODE *tmp=top; top=top->next; free(tmp); return top;}void showStack(NODE*top){ NODE *p=top; while(p){ if(p->next){ printf("%d ",p->data); } else{ printf("%d\n",p->data); } p=p->next; }}bool isEmpty(NODE *s){ bool ret; if(s){ ret=false; } else{ ret=true; } return ret;}int main(){ int x; char str[10]; NODE *s=NULL; while(~scanf("%s",str)){ if(str[1]=='o'||str[1]=='O'){///pop if(!isEmpty(s)){ s=pop(s); } else{ puts("empty"); } } else if(str[1]=='u'||str[1]=='U'){///push scanf("%d",&x); s=push(s,x); } showStack(s); } return 0;}

 

转载于:https://www.cnblogs.com/Q1143316492/p/6260747.html

你可能感兴趣的文章
HDU1698+线段树
查看>>
ASP.NET没有魔法——ASP.NET MVC 与数据库之EntityFramework配置与连接字符串
查看>>
C#进阶系列——WebApi 传参详解
查看>>
生成Excel.xlsx文件 iOS
查看>>
Micro Image Gallery(for Jquery1.7+)
查看>>
你知道哪些linux命令,能把文件上传到远程linux服务器
查看>>
洛谷 P1063 能量项链
查看>>
TinyMCE的使用-语言配置
查看>>
bootstrap 导航栏
查看>>
myeclipse运行html页面修改不生效
查看>>
【1】web.xml中的spring的配置
查看>>
基于springCloud的分布式架构体系
查看>>
客服浮动效果实现
查看>>
常用ContentType对照表
查看>>
nginx部署注意应该将本来的conf和conf.default里面添加 include conf.d/*.conf;
查看>>
合并两个数组 - concat()
查看>>
[译]14种参与开源项目的方法,不需要你成为一名编程天才或者摇滚明星
查看>>
jieba gensim 相似度实现
查看>>
Redis PHP连接操作
查看>>
执法文书打印的实现(三)(word→png的实现)
查看>>