Stack && Queue

1.Queue

FIFO

Decrypting the first string of digits deleted, displaced to the end of the second numeric string, this operation is repeated until all the numbers to be deleted, the deleted sequence numbers forming a new numeric string, decryption is complete, the operation is implemented with queue

#include<iostream>
using namespace std;
struct queue{
	int data[100];
	int head;
	int tail;
};
int a[9]={6,3,1,7,5,8,9,2,4};
int main(){
	struct queue q;
	q.head=q.tail=0;
	for(int i=0;i<9;i++){
		q.data[q.tail++]=a[i];
	}
	while(q.head != q.tail){
		cout<<q.data[q.head++];
		q.data[q.tail++]=q.data[q.head++];
	}
	return 0;
}

  

2.Stack

WIRE

Determination of the number of palindromic, palindrome as AHA, AHH

#include<iostream>
#include<string>
using namespace std;
string k;
int top;
int next;
int stack[100];
int main(){
	cin>>k;
	int len=k.length();
	int mid=len/2-1;
	for(int i=0;i<=mid;i++){
		stack[++top]=k[i];
	}
	if(len%2 == 0){
		next=mid+1;
	}else{
		next=mid+2;
	}
	for(int i=next;i<len;i++){
		if(stack[top--] !=k[i]){
			break;
		}else{
			continue;
		}
	}
	if(top != 0){
		cout<<"NO!";
	}else{
		cout<<"Yes";
	}
	return 0;
}

 Comprehensive examples

Card Game ---- cat fishing

 

 #include<iostream>
 using namespace std;
 struct queue{
     int data[1000];
     int head;
     int tail;
 };
 struct stack{
     int data[1000];
     int top;
 };
 int main(){
     struct queue q1,q2;
     struct stack s1;
     q1.head=q1.tail=1;
     q2.head=q2.tail=1;
     s1.top=0;
    bool flag;
     int temp;
     for(int i=1;i<=6;i++){
         cin>>q1.data[q1.tail++];
    }
    for(int i=1;i<=6;i++){
         cin>>q2.data[q2.tail++];
     }
     while(q1.head!=q1.tail && q2.head !=q2.tail){
         //一方出牌 
         flag=0;
         temp=q1.data[q1.head++];
         for(int i=1;i<=s1.top;i++){
             if(s1.data[i] == temp){
                 flag=true;
                 break;
             }
        }
        if(flag){
            q1.data[q1.tail++]=temp;
            while(s1.data[s1.top] != temp){
                q1.data[q1.tail++]=s1.data[s1.top];
                s1.top--;
            }
        }if(flag ==0 ){
            s1.top++;
            s1.data[s1.top]=temp;
        }
        //对方出牌
        flag=0;
        temp=q2.data[q2.head++];
        for(int i=1;i<=s1.top;i++){
            if(s1.data[i] == temp){
                flag=true;
                break;
            }
        }
        if(flag == 0){
            s1.top++;
            s1.data[s1.top]=temp;
        }
        if(flag){
            q2.data[q2.tail++]=temp;
            while(s1.data[s1.top] !=temp){
                q2.data[q2.tail++]=s1.data[s1.top];
                s1.top--;
            }
        }
    }
    if(q1.head ==q1.tail){
        cout<<"2哥 wins the game!";
        cout<<endl;
        cout<<"2哥手里的牌是:"<<' ';
         for(int i=q2.head;i<=q2.tail-1;i++){
             cout<<q2.data[i]<<' ';
         }
         cout<<endl;
         cout<<"The cards on Table:";
         if(s1.top){
             for(int i=1;i<=s1.top;i++){
                 cout<<s1.data[i]<<' ';
             }
         }else{
             cout<<"Nothing!";
         }
    }
    if(q2.head ==q2.tail){
        cout<<"1哥 wins the game!";
        cout<<endl;
        cout<<"1哥手里的牌是:"<<' ';
         for(int i=q1.head;i<q1.tail;i++){
             cout<<q1.data[i]<<' ';
         }
         cout<<endl;
         cout<<"The cards on Table:";
         if(s1.top){
             for(int i=1;i<=s1.top;i++){
                 cout<<s1.data[i]<<' ';
             }
         }else{
             cout<<"Nothing!";
         }
    }
    return 0;

}

 

#include<iostream>using namespace std;struct queue{int data[100];int head;int tail;};int a[9]={6,3,1,7,5,8,9,2,4};int main(){struct queue q;q.head=q.tail=0;for(int i=0;i<9;i++){q.data[q.tail++]=a[i];}while(q.head != q.tail){cout<<q.data[q.head++];q.data[q.tail++]=q.data[q.head++];}return 0;}

Guess you like

Origin www.cnblogs.com/jcahsy/p/12575070.html