栈的基本应用_将字符串逆序输出
来源:互联网 发布:js代码封装的好处 编辑:程序博客网 时间:2024/05/22 07:58
stack.h
#ifndef stack_h__#define stack_h__#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef enum boolean {FALSE, TRUE} BOOL;typedef int ElementType;typedef struct stack_def{ ElementType* data; int top; int sz;}stack;void initStack(stack* s, int sz);BOOL isEmpty(stack s);BOOL isFull(stack s);void Pop(stack *s);void Push(stack* s, ElementType e);ElementType getTop(stack s);#endif // stack_h__
stack.c
#include "stack.h"void initStack(stack* s, int sz){ if (sz < 0){ puts("error:sz < 0"); exit(1); } s->sz = sz; s->data = (ElementType*)malloc(sizeof(ElementType)*s->sz); s->top = -1;}BOOL isEmpty(stack s){ return (BOOL)(s.top==-1);}BOOL isFull(stack s){ return (BOOL)(s.top == s.sz);}void Pop(stack *s){ if (isEmpty(*s)){ puts("error: Pop stack is empty."); exit(1); } s->top--;}void Push(stack* s, ElementType e){ if (isFull(*s)){ puts("error: Push stack is Full."); exit(1); } s->data[++s->top] = e;}ElementType getTop(stack s){ if (isEmpty(s)){ puts("error: getTop stack is empty."); exit(1); } return s.data[s.top];}
main.c
#define MAX_LEN 20#include "stack.h"int main(){ char str[MAX_LEN]; stack s; int i; printf("输入一个字符串:"); gets(str); initStack(&s, MAX_LEN); for (i=0; str[i]; i++){ Push(&s, str[i]); } puts("Result:"); while (!isEmpty(s)){ putchar(getTop(s)); Pop(&s); } printf("\n"); return 0;}
运行结果:
0 0
- 栈的基本应用_将字符串逆序输出
- 数组_习题:将输入的字符串逆序输出
- 汇编-将输入的字符串逆序输出
- 将输入的字符串逆序输出
- 将一个字符串逆序输出
- 将一个字符串逆序输出
- 将一个字符串逆序输出
- 字符串的逆序输出
- 字符串的逆序输出
- 将整数以字符串的形式逆序输出
- 汇编-将数据区的字符串逆序输出
- 编写程序通过栈的方式将任意输入的字符串内容进行逆序输出。
- 栈(stack)的应用实例——将一个数组逆序输出
- 使用字符指针将字符串逆序输出
- java将字符串逆序递归方式输出
- 将两个字符串按逆序输出
- 数字字符串的逆序输出
- IT公司机试常考的一道题--将任意字符串逆序输出或者输出所有排列
- IPC机制
- BGRABitmap图像操作10:透视映射
- OkHttp
- View的事件体系
- 在ubuntu 12.04 RTAI 下安装LABVIEW
- 栈的基本应用_将字符串逆序输出
- Http协议(重点)
- Java Application如何打jar包
- SQL复杂的查询
- Design Tic-Tac-Toe
- 网络管理工具
- AngularJs2.0正式发布
- C语言的艺术之——头文件
- Java学习笔记之Java工作原理