C实现一个简单链栈
来源:互联网 发布:手机可以plc编程软件吗 编辑:程序博客网 时间:2024/05/21 11:32
链栈是用类似于链表的形式实现的栈。
作为一个记录吧,写的不好之处还望指出。
#include<stdio.h>#include<stdlib.h>#define ElemType inttypedef struct Ls{ ElemType data; struct Ls *next;}Node;Node *creatstack(); //creat a empty stackvoid pushstack(ElemType,Node **); //sent data to stackElemType popstack(Node **); //let data popvoid display(Node **); //print all dataint emptyjudge(Node **); //judge if it is a empty stackint main(void){ //beacuse s must link to top of stack,in popstack() //we need change it,when nember of Node added or reduced //but we cannot return it because we need Elemtype //so we use **s Node **s,*base; int i,t; *s=creatstack(); base=*s; printf("--the stack has created\n"); printf("--1:push stack\n--2.pop stack\n--3.display stack\n"); while(1) { printf("--over!\n--choice:"); scanf("%d",&i); switch(i) { case 1:printf("--data:");scanf("%d",&t);pushstack(t,s);break; case 2: { if(emptyjudge(s)) printf("--%d leave stack.\n",popstack(s)); else printf("--stack has been empty.\n"); break; } case 3:display(s);break; default:printf("error,try again\n"); } }}int emptyjudge(Node **s){ if((*s)->next==NULL) return 0; else return 1;}Node *creatstack(){ Node *te; te=(Node *)malloc(sizeof(Node)); te->next=NULL; return te;}void pushstack(ElemType e,Node **s){ Node *temp; temp=*s; *s=(Node *)malloc(sizeof(Node)); (*s)->next=temp; (*s)->data=e;}ElemType popstack(Node **s){ int i=(*s)->data; (*s)=(*s)->next; return i;}void display(Node **s){ Node *temp=*s; while(emptyjudge(s)) { printf("--%5d--\n",(*s)->data); (*s)=(*s)->next; } *s=temp;}
0 0
- C实现一个简单链栈
- 【C++】一个简单栈的实现
- 一个简单C顺序栈的实现
- C语言实现一个简单的栈
- C语言实现一个简单的单向链表list
- C语言实现的一个简单链表
- C语言-------实现一个简单的单向链表
- 实现一个简单C#DES加密类
- 一个简单的HashMap C语言实现
- 一个简单的HashMap C语言实现
- BloomFilter的一个简单实现(C语言)
- C语言实现一个简单的计算器
- 一个简单的http_server的c实现
- 一个简单定时器的实现(C++)
- 【C语言】实现一个简单的通讯录
- 自己动手实现一个简单c编译器
- 一个简单定时器的实现(C++)
- 【C语言】实现一个简单SHELL应用
- 关于getting 'android:label' attribute: attribute is not a string value 错误的解决方法
- 搜索—Problem_1019-N皇后问题
- ioctl
- Java中的int与Integer对比
- Android基础控件 - RadioButton与CheckBox
- C实现一个简单链栈
- 3.六种单例设计模式,嗯,强行六种
- 【android】项目案例(二)之京东客户端
- HDU-1232/NYOJ-608畅通工程,并查集模板题,,水过~~~
- 使用配置文件properties
- HDU 1172 猜数字(暴力)
- c#的接口详解
- MATLAB中的矩阵索引
- 解决文件名冲突问题(针对处理后的图片)