• <p><img src="http://img.blog.csdn.net/20150823142545135?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""></p>



    /*
    	实现功能:用顺序表实现栈的各种操作
    	编译环境:Windows 64b,vc6.0
    	日期:    2015/7/20
    	作者:wtt561111
    */
    
    
    #define stack_max_num 10
    #include "stdio.h"
    #include "stdlib.h"
    struct SeqStack{
    	int MAXNUM;
    	int t;//始终指向栈顶
    	int *s;
    };
    typedef struct SeqStack *PSeqStack;
    
    
    
    /*
    	创建一个空的堆栈,存储方式为顺序表
    */
    PSeqStack createEmptyStack_seq(int m){
    
    	PSeqStack pastack=(PSeqStack)malloc(sizeof (struct SeqStack));
    	if(pastack==NULL){
    		printf("out of spcae!
    ");
    		return NULL;
    	}
    	pastack->s=(int * )malloc (sizeof (int)*m);
    	if(pastack==NULL){
    		printf("out of space!
    ");
    		return NULL;
    	}
    	pastack->MAXNUM=m;
    	pastack->t=-1;
    	return pastack;
    }
    /*****************************************************/
    
    /*
    	推断堆栈是否为空
    */
    int isEmptyStack_seq(PSeqStack pastack){
    
    	if(pastack->t==(-1) )
    		return 1;
    	return 0;
    
    }
    /*****************************************************/
    
    
    /*
    	将x压入栈中,成功返回1,否则返回0;
    */
    int push_seq(PSeqStack pastack,int x){
    
    	if(pastack->t >= pastack->MAXNUM){
    		printf("overflow!
    ");
    		return 0;
    	}
    	pastack->t=pastack->t+1;
    	pastack->s[pastack->t]=x;
    	return 1;
    
    }
    /*****************************************************/
    
    
    /*
    	将栈顶元素出栈,成功返回1,否则返回0;
    */
    int pop_seq(PSeqStack pastack){
    
    	if(pastack->t==(-1)){
    		printf("empty stack!
    ");
    		return 0;
    	}
    	pastack->t=(pastack->t)-1;
    	return 1;
    
    }
    /*****************************************************/
    
    
    /*
    	获取栈顶元素,成功返回栈顶元素,否则返回-1。
    */
    int top_seq(PSeqStack pastack){
    
    	if(pastack->t==(-1)){
    		printf("empty stack!
    ");
    		return -1;
    	}
    
    	return pastack->s[pastack->t];
    
    }
    /*****************************************************/
    
    /********************主函数***************************/
    int main(){
    	PSeqStack stack_get=createEmptyStack_seq(stack_max_num);
    	push_seq(stack_get,0);
    	push_seq(stack_get,1);
    	push_seq(stack_get,2);
    	push_seq(stack_get,3);
    	pop_seq(stack_get);
    	int from_top=top_seq(stack_get);
    	printf("%d
    ",from_top);
    	return 0;
    }
    


  • 相关阅读:
    115. 不同的子序列
    114. 二叉树展开为链表
    基于Docker结合Canal实现MySQL实时增量数据传输
    Docker-Compose
    Docker容器的创建、启动、和停止
    ES集群
    ES
    Docker配置JDK1.8镜像
    Docker及Docker-Compose的使用
    docker安装jdk
  • 原文地址:https://www.cnblogs.com/llguanli/p/8274224.html
Copyright © 2020-2023  润新知