模拟栈-C描述
来源:互联网 发布:linux 压缩命令 tar 编辑:程序博客网 时间:2024/06/06 15:38
模拟栈-C描述
#include<stdlib.h>#include<stdio.h>#define STATUS_OK 1#define STATUS_ERROR 0#define TRUE 1#define FALSE 0#define MAX_SIZE 20typedef int Status;typedef int SElementType;//栈元素typedef struct {SElementType data[MAX_SIZE];int top;}SqStack;Status visit(SElementType d) {//显示元素printf("%d", d); return STATUS_OK;}Status initStack(SqStack *S) {S->top = -1; return STATUS_OK;}Status clearStack(SqStack *S) {S->top = -1; return STATUS_OK;}Status isEmpty(SqStack *S) {return S->top == -1 ? TRUE : FALSE;}int getLength(SqStack S) {return (S.top + 1);}Status getTop(SqStack *S, SElementType *e) {if (isEmpty(S)){return STATUS_ERROR;}*e = S->data[S->top];return STATUS_OK;}Status pop(SqStack * S, SElementType * e) {//出栈if (isEmpty(S)) return STATUS_ERROR;*e = S->data[S->top];S->top--;return STATUS_OK;}Status push(SqStack *S, SElementType e) {//压栈if (S->top>MAX_SIZE - 1)return STATUS_ERROR;S->top++;S->data[S->top] = e;return STATUS_OK;}Status traverse(SqStack S) { //展示栈int i = 0;while (i <= S.top){visit(S.data[i++]);}printf("\n");return STATUS_OK;}void main() {SqStack stack;int j = 0;int e = 0;if (initStack(&stack)) {for (int i = 0; i < 10; i++){push(&stack, i);//压栈}}printf("栈中元素依次为:");traverse(stack);pop(&stack, &e);printf("\n弹出栈顶元素:%d", e);getTop(&stack, &e);printf("\n栈顶元素是:%d",e);printf(isEmpty(&stack)?"\n栈是空栈":"\n栈不是空栈");printf("\n栈的长度是:%d", getLength(stack));clearStack(&stack);printf("\n栈的长度是:%d", getLength(stack));getchar();}
0 0
- 模拟栈-C描述
- 模拟队列(一)-C描述
- 操作系统 模拟可变分区内存管理实验 C语言描述
- C语言模拟栈
- 【C++】模拟实现栈
- 数据结构(C语言描述)读书笔记之栈
- 【spring模拟】IOC描述及模拟
- c/c++模拟推栈
- 双栈模拟队列 c
- poj-1363 c模拟栈
- 异常类型 描述(C#)
- 用C描述自动机
- c static关键字描述
- c 语言精简描述
- 大蛇数组-C描述
- 锯齿数组-C描述
- 数据结构(C语言描述)
- gei825xxVxbEnd.c文件描述
- 淘宝的消息中间件
- (33)Spring Boot 监控和管理生产环境【从零开始学Spring Boot】
- 平衡二叉树
- The sum problem——关于连续子数列的求和问题
- Logistic回归和梯度上升算法
- 模拟栈-C描述
- Jetty与tomcat的比较
- Android 下拉刷新,非常强大的下拉刷新功能
- MyEclipse移动开发教程:构建MobiOne应用(三)
- SourceTree保存密码--解决每次pull、push都要输入两次密码的问题
- chromedriver以及chrome google版本的对应关系
- (34)Spring Boot的启动器Starter详解【从零开始学Spring Boot】
- Java集合中删除元素使用Iterator
- java.util.Locale