用数组写栈
来源:互联网 发布:java杨辉三角输出空格 编辑:程序博客网 时间:2024/06/05 12:42
#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX 10struct stack_data{int stack[MAX];int top;};typedef struct stack_data Stack;enum return_result{FULL_OK,FULL_NO,EMPTY_OK,EMPTY_NO,PUSH_OK,PUSH_NO,POP_OK,POP_NO};void create_stack(Stack **stack){(*stack) = (Stack*)malloc(sizeof(Stack));if(*stack == NULL){printf("malloc error!\n");exit(-1);}}void init_stack(Stack **stack){(*stack)->top = -1; }int is_full_stack(Stack **stack){if((*stack)->top == MAX-1){return FULL_OK;}return FULL_NO;}int push_stack(Stack **stack,int num){if(is_full_stack(stack) == FULL_OK){printf("stack is full!\n");return PUSH_NO;}(*stack)->stack[++(*stack)->top] = num;return PUSH_OK;}int is_empty_stack(Stack **stack){if((*stack)->top == -1){return EMPTY_OK;}return EMPTY_NO;}int pop_stack(Stack **stack){if(is_empty_stack(stack) == EMPTY_OK){printf("stack is empty!\n");return POP_NO;}//tmp = (*stack)->stack[((*stack)->top)--];return POP_OK;}int main(){Stack *stack;int i;int tmp;srand(time(NULL));create_stack(&stack);init_stack(&stack);for (i = 0; i < MAX; i++){tmp = rand() % 100;if(tmp > 50){if(push_stack(&stack,i) == PUSH_OK){printf("push num %d\n",i); }}else{if(pop_stack(&stack) == POP_OK){printf("pop num %d\n",stack->stack[(stack->top)--]);}}} return 0;}
0 0
- 用数组写栈
- 用数组写队列
- java 用数组写queue
- 用模板写插入排序-数组
- 用模板写冒泡排序-数组
- 用模板写选择排序-数组
- 用模板写快速排序-数组
- 用结构体数组写的通讯录
- C++写动态数组
- mongodb数组写操作
- 用lua从写一次最大子数组问题
- 用lua从写一次最大子数组问题
- java程序 用数组和函数写的购物java
- js写一个好用的数组查找方法
- 用java写一个对数组进行冒泡排序法
- c++用二维数组传参时形参该怎么写
- java用二维数组写的关灯小游戏
- 用结构体数组写的一个通讯录
- android 百度地图sdk
- 简述C和C++程序员学习历程
- 欢迎使用CSDN-markdown编辑器
- mybatis配置以后查询没有结果
- centos 6.8安装vsftpd 亲测可行
- 用数组写栈
- 我的服务器开发之路-阿里云产品的选购
- 实现图片获取ImageLoad和UM配置
- C#快速入门资料
- HttpResponseCode
- iOS 安装cordova,创建App
- 缓存之LRU、LFU算法
- 安卓极光推送的使用以及可能遇到的问题整理
- realloc、malloc、以及calloc函数的区别