链式栈
来源:互联网 发布:杭州g20知乎 编辑:程序博客网 时间:2024/05/08 09:08
#include <stdio.h>#include<stdlib.h>#define Ok 1#define Error 0typedef int Status;typedef int ElemType;typedef struct LNoelist {ElemType data;struct LNoelist *next;}LNoelist; //链栈每个节点的结构体定义typedef struct SqlStack{ struct LNoelist *top;struct LNoelist *base;int length;}SqlStack; //链栈指针的结构体的定义Status Ini_Stack(SqlStack *q) //初始化链栈{q->base=(LNoelist*)malloc(sizeof(LNoelist));if(!q->base) {printf("初始化错误");return Error;}q->top=q->base;q->length=0;return Ok;}Status push(SqlStack *q,ElemType e) //入栈{LNoelist *s;s=(LNoelist*)malloc(sizeof(LNoelist));s->data=e;s->next=q->top;q->top=s;q->length++;return Ok;}Status pop(SqlStack *q,ElemType &e) //出栈{ LNoelist *s; s=q->top; e=q->top->data; q->top=q->top->next; free(s); return 1;}Status print(SqlStack *q) //按照top减来输出栈内容,其实就是弹栈操做{printf("您输入的链式栈为");while(q->top!=q->base){printf("%d",q->top->data);q->top=q->top->next;}return Ok;}Status print1(SqlStack *q) //按照弹栈输出{int e;printf("您输入的链式栈为");while(q->top!=q->base){pop(q,e);printf("%d",e);}return 1;}void main(){SqlStack *q;int e;q=NULL;q=(SqlStack*)malloc(sizeof(LNoelist));Ini_Stack(q);printf("请输入数据啊(按0结束)");scanf("%d",&e);while(e!=0){push(q,e);scanf("%d",&e);}//print(q);print1(q);getchar();getchar();}
比较简单,就是单链表的一个有顺序的应用
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈-链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 什么是真正的程序员? 知乎热议
- LDD3源码分析之llseek分析(二)
- HOJ 2105 Bungee Jumping
- 基础语言-题目74(小学算术)
- 全志A10 android平台CVBS效果调试
- 链式栈
- 如何更改c#项目的App.config文件
- The True Story of Hello World
- 什么是委托
- Here I am,it‘s a new start
- 扫雷程序完美版!!!!!!可以通过点击鼠标来翻开格子或者做上标记 !!!!!!!
- CSS样式应用小实例(改变下拉列表选项颜色)
- 程序员面试题精选100题(19)-反转链表
- Linux经典书籍推荐