当前位置: 首页 > news >正文

C++栈操作集合

数组

#include <bits/stdc++.h>
using namespace std;class sss{
private:int a[1000];int curr = -1;
public:void push(int);void pop();int top();bool empyt();int size();
};int main()
{sss n;while(true){int a;cout<<"1.添加+\n2.删除-\n3.显示栈顶\n4.储存情况\n5.栈的大小\n6.退出"<<endl;cin>>a;if(a==1){int sh;cin>>sh;n.push(sh);}else if(a==2)n.pop();else if(a==3)cout<<n.top()<<endl;else if(a==4){if(n.empyt()==1)cout<<"栈为空(×o×)";else cout<<"栈非空(^-^)";}else if(a==5)cout<<n.size()<<endl;else if(a==6)break;system("pause");system("cls");}return 0;
}
void sss::push(int s)
{if(curr<1000){a[++curr]=s;}else cout<<"栈已满(×o×)\n";return;
}
void sss::pop()
{if(curr>-1){curr--;}else cout<<"栈为空(×o×)\n";return;
}
int sss::top()
{if(curr>-1) return a[curr];else cout<<"栈为空(×o×)\n";return -1;
}
bool sss::empyt()
{if(curr==-1) return true;else return false;
}
int sss::size()
{return curr+1;
}

链表

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;struct sss
{int vl;sss* next;sss* prev;sss(){}sss(int v){v=vl;next=NULL;prev=NULL;}
};
class ss
{
private:sss* root=NULL;sss* ptop=NULL;int n=0;
public:void push(int);void pop();int top();bool empyt();int size();
};int main()
{ss n;while(true){int t;cout<<"1.添加+\n2.删除-\n3.显示栈顶\n4.储存情况\n5.栈的大小\n6.退出"<<endl;cin>>t;if(t==1){int sh;cin>>sh;n.push(sh);}else if(t==2)n.pop();else if(t==3)cout<<n.top()<<endl;else if(t==4){if(n.empyt()==1)cout<<"栈为空(×o×)";else cout<<"栈非空(^-^)";}else if(t==5)cout<<n.size()<<endl;else if(t==6)break;system("pause");system("cls");}return 0;
}
void ss::push(int s)
{sss*curr=new sss(s);if(root==NULL){root=curr;ptop=curr;return;}ptop->next=curr;curr->prev=ptop;ptop=curr;n++;
}
void ss::pop()
{if(root!=ptop){sss*curr=ptop;ptop=ptop->prev;ptop->next=NULL;delete curr;n--;}else if(root==ptop&&root!=NULL){sss*curr=ptop;delete curr;n--;root=NULL;ptop=NULL;}else cout<<"栈为空(×o×)"<<endl;
}
int ss::top()
{return ptop->vl;
}
bool ss::empyt()
{if(root==NULL)return true;else return false;
}
int ss::size()
{return n;
}

相关文章:

  • SpringBoot编写单元测试
  • acwing--动态规划【线性dp】4/20、4/21
  • Lora 微调自定义device_map
  • 第一章:MySQL视图基础
  • 苍穹外卖阶段性总结 (超详细版)
  • 阿里HumanAIGC 团队开源实时数字人项目ChatAnyone
  • 俄罗斯方块-简单开发版
  • using用法整理
  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录 上册期中同步测试卷 B卷
  • c++ 类和动态内存分配
  • Java基础语法
  • 本地搭建MQTT服务器并进行设备控制(ESP32+MicroPython)
  • Qt6离线安装过程
  • HarmonyOS 笔记
  • 9.QT-显示类控件|Label|显示不同格式的文本|显示图片|文本对齐|自动换行|缩进|边距|设置伙伴(C++)
  • 2025.4.20总结
  • 基于尚硅谷FreeRTOS视频笔记——11—RTOS获取源码及源码简介
  • STM32基础教程——串口收发
  • YOLOv11改进——基于注意力机制和密集小目标增强型EVA模块的设计与实现
  • QML中的JSON 处理
  • 高架上2名儿童从轿车天窗探出身来,驾驶员被记3分罚200元
  • 2025年度“沪惠保”将于4月22日开售,保费不变
  • 竹子砍了地却种不上,贵州赤水被指“整改复耕”存形式主义
  • 全国登记在册民营企业超过5700万户,占企业总量92.3%
  • 德国男中音马蒂亚斯·格内:古典音乐的未来在亚洲
  • “75后”新任四川泸州市委副书记张伟,已任市政府党组书记