• 队列-课前预习


    1

    错误

    2

    m

    3

    1. #include
    2. using namespace std;
    3. const int M = 100;
    4. int a[100],l=0,cnt=0;
    5. bool push(int x){
    6.  if(cnt>=M)return false;
    7.  else a[(l+cnt++)%M]=x;
    8.  return true;
    9. }
    10. int pop(){
    11.  if(cnt<= 0)return INT32_MIN;
    12.  else return a[l+(--cnt)];
    13. }
    14. void show(){
    15.  cout<<"队列为:";
    16.  for(int i=0;i
    17.    cout<' ';
    18.  cout<
    19. }
    20. int main(){
    21.  int op, p;
    22.  while(cin>>op && op!=-1){
    23.    cout<<"请选择您所需的操作:\n1.入队\n2.出队\n-1.退出"<
    24.    int x;
    25.    switch (op){
    26.      case 1:
    27.        cin>>x;
    28.        push(x);
    29.        show();
    30.        break;
    31.      case 2:
    32.        p=pop();
    33.        if(p==INT32_MIN)cout<<"队列为空"<
    34.        else cout<<"出队的元素为:"<<pop()<
    35.        break;
    36.   }
    37. }
    38.  return 0;
    39. }

    4

    1. #include
    2. using namespace std;
    3. class mydeque{
    4.  private:
    5.    int l,r,cnt;
    6.    int *p;
    7.  public:
    8.    static int maxn;
    9.    mydeque():l(0),r(1),cnt(0){p = new int[maxn];};
    10.    ~mydeque(){ delete p;}
    11.    bool push(int x);
    12.    int pop();
    13.    bool inject(int x);
    14.    int eject();
    15.    bool is_full(){return cnt==maxn;};
    16.    bool is_empty(){return cnt==0;};
    17.    void show();
    18. };
    19. int mydeque::maxn = 100;
    20. bool mydeque::push(int x){
    21.  if(is_full()) return false;
    22.  else {
    23.    int maxnn=mydeque::maxn;
    24.    p[l] = x;
    25.    l=(l-1+maxnn)%maxnn;
    26.    cnt++;
    27. }
    28. }
    29. int mydeque::pop(){
    30.  if(is_empty()) return INT32_MIN;
    31.  else {
    32.    l=(l+1)%mydeque::maxn;
    33.    cnt--;
    34.    return p[l];
    35. }
    36. }
    37. bool mydeque::inject(int x){
    38.  if(is_full()) return false;
    39.  else {
    40.    p[r]=x;
    41.    r=(r+1)%mydeque::maxn;
    42.    cnt++;
    43. }
    44. }
    45. int mydeque::eject(){
    46.  if(is_empty()) return INT32_MIN;
    47.  else {
    48.    int maxnn=mydeque::maxn;
    49.    r=(r-1+maxnn)%maxnn;
    50.    cnt--;
    51.    return p[r];
    52. }
    53. }
    54. void mydeque::show(){
    55.  cout<<"当前队列中的元素: ";
    56.  for(int i=1;i<=cnt;++i)
    57.    cout<" ";
    58.  cout<
    59. }
    60. int main(){
    61.  mydeque dq;
    62.  cout<<"请输入操作:\n1.队头入队\t2.队头出队\t3.队尾入队\t4.队尾出队\t-1.结束\n";
    63.  int op;
    64.  while(cin>>op && op!=-1){
    65.    int x, tmp;
    66.    switch(op){
    67.      case 1:
    68.        cin>>x;
    69.        dq.push(x);
    70.        dq.show();
    71.        break;
    72.      case 2:
    73.        tmp=dq.pop();
    74.        if(tmp==INT32_MIN) cout<<"队列为空\n";
    75.        else cout<<"出队元素为"<
    76.        break;
    77.      case 3:
    78.        cin>>x;
    79.        dq.inject(x);
    80.        dq.show();
    81.        break;
    82.      case 4:
    83.        tmp=dq.eject();
    84.        if(tmp==INT32_MIN) cout<<"队列为空\n";
    85.        else cout<<"出队元素为"<
    86.        break;
    87.   }
    88. }
    89. }

  • 相关阅读:
    示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选
    这一次,弄明白JS中的文件相关(一):概念篇
    练习实践:ubuntu18.04安装、配置Nginx+PHP环境,两种配置方式,多站点
    java中static关键字具有什么功能呢?
    Unity之ShaderGraph如何实现全息投影效果
    古玩交易NFT数字藏品平台
    Kotlin学习笔记之泛型的高级特性
    为什么这么多人转行产品经理?产品经理发展前景如何?
    前端面试(4)—— DOM事件的总结
    索引的创建和设计原则
  • 原文地址:https://blog.csdn.net/m0_64839851/article/details/126833672