简单数据结构之栈模拟

来源:互联网 发布:付费语音问答源码 编辑:程序博客网 时间: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
原创粉丝点击