zoukankan      html  css  js  c++  java
  • 栈和队列

    第三章、栈

    一、定义、

      栈是限定仅在表尾进行插入或删除的线性表。

    二、实现(顺序存储):

      利用数组的顺序存储依次存放自栈底到栈顶的数据元素。

    三、数据结构:

      

    1 typedef struct{
    2      elemtype data[100];   //利用数组进行存取
    3      int top;        //栈顶
    4     int base;        //栈底
    5 }Sqstack
    View Code

    四、代码实现:

    #include<iostream>
    using namespace std;
    #define Max 100 
    typedef struct {
        int data[Max];
        int base;
        int top;
        int length;//表示栈内元素个数 
    }Stack; //定义栈类型
    
    //初始化栈
    void Init_stack(Stack& s){
        s.base=0;
        s.top=0;
        s.length=s.top-s.base;
    }
    
    //获得栈顶元素
    int get_top(Stack s){
        if(s.length!=0){
        cout<<s.data[s.top-1];
        return s.data[s.top-1];
        
        }
        else
            return -1;
    } 
    //插入元素
    bool push(Stack& s,int i){
        if(s.length<100){
            s.data[s.top]=i;
            s.length=s.top-s.base;
            s.top+=1;
            return true;
        }else{
            return false;
        }
    }
    //删除元素
    bool pop(Stack& s){
        if(s.length>0){
            s.top--;
            s.length=s.top-s.base;
        }else{
            return false;
        }
    } 
    int main(){
        Stack s;
        Init_stack(s);
        int i;
        push(s,10);
        push(s,20);
        get_top(s);
    } 
    View Code

    三、应用、

      1、由于栈结构的后进先出的特性。

      2、可以应用在数制转换、括号匹配、

     

  • 相关阅读:
    dockerfile构建的镜像中文乱码
    xshell+xmanager6破解
    mysql数据库本地登录无法查看到数据库
    Tomcat日志中文乱码问题解决
    Tomcat 启动很慢
    Supervisor-安装
    supervisor-monitor进程集中管理部署
    CeSi 进程集中管理部署
    [IOT]
    [SourceTree]
  • 原文地址:https://www.cnblogs.com/yangsongwei/p/8746817.html
Copyright © 2011-2022 走看看