zoukankan      html  css  js  c++  java
  • 顺序栈的建立及操作

    问题:建立顺序栈还是比较简单的。主要是一开始在入栈操作中每次调用初始化栈函数,结构出错。

    代码:

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    #define MAXSIZE 20
    typedef struct SeqStack
    {
    	int stack [MAXSIZE];
    	int top;
    }*stackNode;
    
    void initStack(stackNode &stack)
    {
    	stack=(stackNode)malloc(sizeof(struct SeqStack));
        if(!stack)
    	{
    		cout<<"allocate fail"<<endl;
    		exit(EXIT_FAILURE);
    	}
    	else
    	{
    		stack->top=-1;
    	}
    }
    
    void pushStack(stackNode stack,int elem)
    {
    	 if(stack->top==MAXSIZE)
    	 {
    		 cout<<"stack is full"<<endl;
    		 exit(0);
    	 }
    	 else
    	 {
    		 stack->stack[++(stack->top)]=elem;
    	 }
    }
    
    int  popStack(stackNode stack)
    {
    	int elem;
    	if(stack->top==-1)
    	{
    		cout<<"栈已空"<<endl;
    		return -1;
    	}
    	elem=stack->stack[stack->top];
    	--stack->top;
    
    	return elem;
    }
    
    int topStack(stackNode stack)
    {
    	int top;
    	if(stack->top==-1)
    	{
    		cout<<"栈已空"<<endl;
    		return -1;
    	}
    	top=stack->stack[stack->top];
    
    	return top;
    }
    
    void showStack(stackNode stack)
    {
    	if(stack->top==-1)
    	{
    		cout<<"栈已空"<<endl;
    		exit(-1);
    	}
    	while(stack->top!=-1)
    	{
    		cout<<stack->stack[stack->top]<<"--";
    		--stack->top;
    	}
    	cout<<endl;
    }
    
    int main()
    {
    	stackNode stack=NULL;
    	int top;
    	int arr[]={1,3,5,6,7,2,9,8};
    	initStack(stack);
    	cout<<"入栈:"<<endl;
    	for(int i=0;i<8;i++)
    	{
    		pushStack(stack,arr[i]);
    	}
    
    	top=topStack(stack);
    	cout<<"top="<<top<<endl;
    
    	cout<<"出栈元素为"<<popStack(stack)<<endl;
        cout<<"出栈元素为"<<popStack(stack)<<endl;
    
    	cout<<"入栈:"<<endl;
    	pushStack(stack,16);
    	pushStack(stack,19);
    
    	top=topStack(stack);
    	cout<<"top="<<top<<endl;
    	cout<<"遍历栈中的元素:";
    	showStack(stack);
    	return 0;
    }
    

    运行截图:

  • 相关阅读:
    Oracle-函数
    Oracle-存储过程
    Linux-文件系统概述
    Oralce-PL/SQL编程-游标
    Oracle -操作数据库
    Oralce常用系统函数
    SQL语言基础-基本概念
    Linux-进程管理
    Linux-用户管理
    shell里的IFS内置环境变量
  • 原文地址:https://www.cnblogs.com/xshang/p/3030874.html
Copyright © 2011-2022 走看看