zoukankan      html  css  js  c++  java
  • 栈操作

    #include <stdio.h>
    
    #define MaxSize 10
    
    typedef struct{
    	int data[MaxSize];
    	int top;
    }Stack;
    
    void InitStack(Stack &);	//初始化 
    int StackEmpty(Stack);		//判断栈是否为空
    bool Push(Stack & , int e);		//入栈 
    int Pop(Stack & , int &);	//出栈 
    int  TopData(Stack , int);	//读取栈顶数据 
    
    int main(void){
    	Stack s;
    	InitStack(s);
    	
    	switch(StackEmpty(s)){
    		case 0:
    			printf("栈空.
    ");
    			break;
    		case 1:
    			printf("栈满.
    ");
    			break;
    		case 2:
    			printf("栈不为空且不满.
    ");
    	}
    	
    	Push(s,1);
    	Push(s,2);
    	Push(s,3);
    	Push(s,4);
    	
    	int e = 0;
    	printf("出栈的数据是:%d
    ",Pop(s,e));
    	printf("出栈的数据是:%d
    ",Pop(s,e));
    	
    	printf("栈顶数据为:%d
    ",TopData(s,e));
    	return 0;
    } 
    
    //初始化 
    void InitStack(Stack &s){
    	s.top = -1;
    }
    
    //判断栈是否为空 
    int StackEmpty(Stack s){
    	if(s.top = -1){
    		return 0;
    	}else if(s.top == MaxSize - 1){
    		s.top == MaxSize - 1;
    		return 1;
    	}else{
    		return 2;
    	}
    } 
    
    //入栈
    bool Push(Stack &s , int e){
    	if(s.top == MaxSize - 1){
    		printf("栈满");
    		return false;
    	}
    	s.data[++s.top] = e;
    	return true;
    } 
    
    //出栈
    int Pop(Stack &s , int &e){
    	if(s.top == -1){
    		printf("栈空");
    		return 0;
    	}
    	e = s.data[s.top--];
    	return e;
    }
    
    //读取栈顶数据 
    int TopData(Stack s , int e){
    	if(s.top == -1){
    		printf("栈空");
    		return 0;
    	}
    	e = s.data[s.top];
    	return e;
    }
    
  • 相关阅读:
    Dev:LookUpEdit的用法
    Excel:写入Excel单纯写入
    浅拷贝与深拷贝
    自行车的种类
    简单的话
    Excel:导入导出原文02
    VS2010中出现无法嵌入互操作类型
    U盘有时候不显示(win7 64位)
    Knockout学习之Single Page Application
    CSS点滴整理
  • 原文地址:https://www.cnblogs.com/Timesi/p/12427879.html
Copyright © 2011-2022 走看看