简单数据结构之栈模拟
来源:互联网 发布:付费语音问答源码 编辑:程序博客网 时间:2024/06/08 09:32
/************************************************************************************** * Function : 模拟栈* Create Date : 2014/04/23* Author : NTSK13 * Email : beijiwei@qq.com * Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。 * 任何单位和个人不经本人允许不得用于商业用途 * Version : V0.1 ***************************************************************************************题目:简单数据结构之栈模拟 **************************************************************************************/ #include<stdio.h> #define MY_FUNC 1#if MY_FUNC #define M 10 //栈最大高度typedef struct stack{int data[M];int high;//栈当前高度}Stack;int sample[M];int result[M];void init_stack(Stack *a);//栈初始化int push_stack(Stack *a,int value);//进栈int pop_stack(Stack *a);//出栈int get_top_element(Stack *a);//获取栈顶的元素// The first method:int main() { int i=0; Stack sq; init_stack(&sq);freopen("input.txt","r",stdin);for(i=0;i<M;i++) scanf("%d",&sample[i]); // get input datapop_stack(&sq);get_top_element(&sq); for(i=0;i<M;i++)push_stack(&sq,sample[i]);push_stack(&sq,100);for(i=0;i<M;i++)result[i]=pop_stack(&sq);for(i=0;i<M;i++){printf("%d\t",result[i]);fflush(stdout);//修复Eclipse printf()不能显示的小bug}printf("\n");fflush(stdout); return (0);} void init_stack(Stack *a)//栈初始化{(*a).high=0;}int push_stack(Stack *a,int value)//进栈{if((*a).high==M){printf("Stack is full, can not push !!! \n");fflush(stdout);return (-1);}else{if( (*a).high==0 ){(*a).data[0]=value;(*a).high++;return (1);}else{(*a).data[ (*a).high ]=value;(*a).high++;return (1);}}}int pop_stack(Stack *a)//出栈{int tmp=0;if((*a).high==0){printf("Stack is empty, can not pop !!! \n");fflush(stdout);return (-1);}else{tmp=(*a).data[ (*a).high -1];(*a).high--;return (tmp);}}int get_top_element(Stack *a)//获取栈顶的元素{int tmp=0;if((*a).high==0){printf("Stack is empty, can not get top element !!! \n");fflush(stdout);return (-1);}else{tmp=(*a).data[ (*a).high -1];return (tmp);}} /********************************************my function end**************************************************/ #else #endif
0 0
- 简单数据结构之栈模拟
- 简单数据结构之队列模拟
- 数据结构之简单栈
- 数据结构之用栈模拟队列
- 数据结构之广义表模拟
- 【数据结构】 栈的模拟
- 数据结构实验之栈:行编辑器(手写模拟栈)
- 数据结构实验之栈:行编辑器 数组模拟栈
- 简单数据结构的实现之顺序栈
- 简单数据结构的实现之链栈
- 简单数据结构之数组栈(C++实现)
- 数据结构之栈(简单版)
- 数据结构之栈的简单实现
- 数据结构之 简单栈的创建
- 数据结构示例之数组模拟多栈实现
- 数据结构示例之使用链表模拟栈
- 数据结构复习之用两个栈模拟队列操作
- 数据结构之堆栈模拟应用(算法3.1)
- JavaScript的闭包问题
- 2014 android毕设代做 代做Android毕设 安卓毕设
- unity3d动画插件iTween-路径动画的制作
- TOOLTIPS 的相关用法
- 移动GIS开发之一 基于arcgis mobile10的开发环境的搭建
- 简单数据结构之栈模拟
- poj1324 Holedox Moving
- 基于ARM Contex-A8 Tiny210的简单室内人员数目监测系统实现(3)
- Laravel教程:laravel 4安装及入门
- conn.setAutoCommit()用法及作用
- GCD-semaphore(资源)-apply
- 美华裔男生入选美军预备军官 获25万美元奖学金
- .NET 程序集与命名空间
- 黑马程序员-高新注解学习日记