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;
    }
    
  • 相关阅读:
    Mysql 创建表
    oracle数据库 ORA-01017的解决办法
    用Html创建简历
    Mysql 基本的增删改查
    Linux 基本操作
    几乎百度
    测试第二天
    java map接口,可变参数,Collections集合工具类
    java set接口
    java List接口
  • 原文地址:https://www.cnblogs.com/Timesi/p/12427879.html
Copyright © 2011-2022 走看看