Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Deque{
- public:
- Deque(int size){
- deque = new int[size*2];
- first=last=(deque+size);
- _size=size;
- }
- void unshift(int value){
- if(count<_size){
- if(count==0){
- count++;
- *first = value;
- }
- else{
- count++;
- first--;
- *first=value;
- }
- } else cout<<"Queue is full"<<endl;
- }
- int shift(){
- if(count==0){
- return 0;
- }
- else{
- count--;
- value = *first;
- first++;
- return value;
- }
- }
- void push(int value){
- if(count<_size){
- if(count==0){
- count++;
- *last = value;
- }
- else{
- last++;
- count++;
- *last=value;
- }
- } else cout<<"Queue is full"<< endl;
- }
- int pop(){
- if(count==0){
- return 0;
- }
- else{
- count--;
- value = *last;
- last--;
- return value;
- }
- }
- void showDeque(){
- if(count == 0){
- cout<<"pust";
- }
- else
- for(int* i = first; i<=last;i++){
- cout<<*i<<' ';
- }
- }
- ~Deque(){
- delete deque;
- }
- private:
- int _size;
- int* deque;
- int value;
- int* first = 0;
- int* last = 0;
- int count = 0;
- };
- int main()
- {
- Deque d(3);
- int x;
- int value;
- int position;
- cout << "1 dlya vstaski v nachalo" << endl
- << "2 dlya vzyatiya s nachala" << endl
- << "3 dlya vstavki v konec" << endl
- << "4 dlya vzatia s konca" << endl
- << "0 dlya vihoda" << endl;
- while (x !=0){
- cout<<endl<<"Vvedi nomer ";
- cin>>x;
- switch(x){
- case 1: cout << "vvedi chislo ";
- cin >> value;
- d.unshift(value); break;
- case 2: cout<<d.shift()<<endl;break;
- case 3: cout << "vvedi chislo ";
- cin >> value;
- d.push(value); break;
- case 4: cout<<d.pop()<<endl;break;
- }
- cout << "Spisok seychas: "; d.showDeque();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement