日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双栈共享空间

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双栈共享空间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.概述
本文使用代碼實現了順序結構——雙棧共享空間

2.代碼實現

順序雙棧

#include<bits/stdc++.h> using namespace std;#define MaxSize 20 typedef struct{int data[MaxSize];int top1; //棧1 int top2; //棧2 }BothStack; //0.初始化雙棧 void InitStack(BothStack &S){S.top1=-1;S.top2=MaxSize; } //1.判斷棧空 bool Empty(BothStack &S){ if(S.top1+1==S.top2){return false;} return true; } //2.入棧 bool Push(BothStack &S,int i,int x){ //i表示入棧1或棧2 if(i!=1&&i!=2){return false; // 棧值是否正確 }else if(S.top1+1==S.top2){return false; //棧是否滿 }else{if(i==1){S.data[++S.top1]=x; // 棧1 }else{S.data[--S.top2]=x; // 棧2 }return true;} } //3.出棧 bool Pop(BothStack &S,int i,int &x){if(i!=1&&i!=2){return false; // 棧值是否正確 }else if(S.top1==-1||S.top2==MaxSize){return false; //棧是否空 }else{if(i==1){x=S.data[S.top1--]; // 棧1 }else{x=S.data[S.top2++]; // 棧2 }return true;} } //4.取棧頂元素與 出棧 代碼實現類似 //主程序 int main(){BothStack S;InitStack(S); // 初始化 /*1.棧1:進棧3,5棧2:進棧2,4 */if(Push(S,1,3)&&Push(S,1,5)){cout<<"進棧 1 成功"<<endl; } else{cout<<"進棧 1 失敗"<<endl;}cout<<endl;if(Push(S,2,2)&&Push(S,2,4)){cout<<"進棧 2 成功"<<endl; } else{cout<<"進棧 2 失敗"<<endl;}//2.出棧int x;if(Pop(S,1,x)){cout<<"出棧 1 元素:"<<x<<endl;}else{cout<<"出棧 1 失敗"<<endl;}cout<<endl;if(Pop(S,2,x)){cout<<"出棧 2 元素:"<<x<<endl;}else{cout<<"出棧 2 失敗"<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的双栈共享空间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。