• 数据结构4:栈与队列


    始终记住栈的特点:后进先出

    队列:先进先出

    写一个栈的例子

     1 //8进制转换
     2 #include<iostream>
     3 #include<stack>
     4 using namespace std;
     5 void conversion(int n)
     6 {
     7     stack<int> result;
     8     while(n)
     9     {
    10         result.push(n%8);//入栈
    11         n=n/8;
    12     }
    13     while(!result.empty())
    14     {
    15         cout<<result.top();
    16         result.pop();//出栈
    17     }
    18 }
    19 int main()
    20 {
    21     conversion(1348);
    22     return 0;
    23 }

    写了一个括号匹配

     1 //括号匹配
     2 #include<iostream>
     3 #include<stack>
     4 using namespace std;
     5 bool side(char ch)//判断是左括号还是右括号,true就是左括号,false是右括号
     6 {
     7     if(ch=='('||ch=='[')
     8         return true;
     9     else
    10     {
    11         return false;
    12     }
    13     
    14 }
    15 bool mat(char right,char left)//判断两个字符是否为同一类型的左右括号
    16 {
    17     if(right=='('&&left==')')
    18         return true;
    19     if(right=='['&&left==']')
    20         return true;
    21     return false;
    22 }
    23 bool match(string str)
    24 {
    25     stack<char> re;
    26     auto w=str.begin();
    27     for(;w!=str.end();w++)
    28     {
    29         if(side(*w))//是左括号
    30             re.push(*w);
    31         else
    32         {
    33             if(mat(re.top(),*w))//右括号且与栈顶的左括号可以匹配
    34                 {
    35                     re.pop();
    36 
    37                 }
    38         }
    39         
    40     }
    41     if(re.empty())
    42         return true;
    43     else
    44     {
    45         return false;
    46     }
    47     
    48 }
    49 
    50 int main()
    51 {
    52     // cout<<match("[([][])]");
    53     cout<<match("[(])");
    54     return 0;
    55 }
  • 相关阅读:
    分形之城
    【SDOI2011 第2轮 DAY1】消防 树上问题+二分+贪心
    【Usaco Nov08 Gold】玩具 三分+贪心
    分治 复习
    快读板子
    最小线段覆盖 C神奇项链
    比赛经验积累1
    字符串 专题
    界面小项目之W3C
    前端小基础
  • 原文地址:https://www.cnblogs.com/neverland0718/p/11413951.html
Copyright © 2020-2023  润新知