stack栈的基本使用-c++

打印 上一主题 下一主题

主题 1814|帖子 1814|积分 5442

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
栈的特点:

  ①先进入栈的元素会放在栈的底部(先进后出)
②取出元素的时候,先取出顶部元素(后进先出)
③栈巨细是有限的
    a.如果栈满了,不能放进元素
    b.如果栈空,不能取出元素

  导入c++库stack以使用栈
   #include<stack>
  定义一个int类型的栈
   stack <int> s;
  
   stack的基本操作有:

  1.入栈:如s.push(x);
2.出栈:如 s.pop().

  注意:出栈操作只是删除栈顶的元素,并不返回该元素。
3.访问栈顶:如s.top();
4.判定栈空:如s.empty().当栈空时返回true。
5.访问栈中的元素个数,如s.size();
6.top() 返回栈顶元素,并不会移除这个元素(注意,返回的是栈顶元素的引用)

    清空栈的操作:

  stack<int> stk
1.循环调用pop()函数,逐个移除栈中元素,直到栈为空
2.stk = {};

  1. #include<iostream>
  2. #include<stack> //导入以使用栈
  3. using namespace std;
  4. stack <int> s; //定义了一个int类型的栈
  5. int main()
  6. {
  7.         int x;
  8.         for (int i = 1; i <= 4; i++)
  9.         {
  10.                 cin >> x;
  11.                 s.push(x); //元素入栈
  12.         }
  13.         int n = s.size();
  14.         cout << "栈内的元素个数为" << n << endl;
  15.        
  16.         s.top() = 2;//直接修改栈顶元素
  17.        
  18.         while (!s.empty()) //当栈不为空时
  19.         {
  20.                 cout << s.top()<<" "; //返回栈顶元素
  21.                 s.pop();//栈顶元素出栈(删除)
  22.         }
  23.        
  24.         if(s.empty()) cout<< endl <<"栈为空" << endl;
  25.        
  26.         //当栈为空时,不能用top()函数访问栈顶元素或进行修改
  27.         s.push(999);
  28.         cout << s.top() << endl;
  29.         cout << "----------------------------------------------------" << endl;
  30.        
  31.         //清空栈的操作:
  32.         stack<int> stk;
  33.         stk.push(1);
  34.         stk.push(2);
  35.         stk.push(3);
  36.         stk = {};
  37.         if (stk.empty()) cout << "栈为空" << endl;
  38.         else cout << "栈中还有元素" << endl;
  39.         return 0;
  40. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表