//411440281 Lu-Wei-Yi
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SIZE 100

struct queue {
  int A[SIZE];
  int front,rear;
  int totalqueue;
};

int empty(struct queue *ps){
    return(ps->front==-1);    
}

int full(struct queue *ps){
    return((ps->rear + 1)%SIZE==ps->front);
}

int addq(struct queue *ps,int data){
    if(full(ps)){
        printf("stack is full");
        exit(0);
    } 
    ps->A[++ps->rear]=data;
}

int deleteq(struct queue *ps){
     if(empty(ps)){
         printf("stack is empty");
         exit(1); 
    }
    return ps->A[ps->front--];
}
//411440281 Lu-Wei-Yi

int main(){

	 
	struct queue q_1;								//主要使用的堆疊 
	struct queue q_2;    							//存取pop出數字的堆疊	
	q_1.front=-1;
	q_2.rear=-1;	
	int k;												//要找的第 k 個數字 

//-------build the random number--------------------------------//

 	int i;
 	printf("Generate 10 numbers into the stack , and print them");
    for (i = 0; i < 100; ++i) {
        addq(&q_1,i%10);
        printf("\n%d",q_1.A[i]);
    }
    printf("  <- front\n\n");
    

//-------assign integer k the 2nd element----------------------//
		
	k=deleteq(&q_1);								//從stack_1 pop數字出來後 放到stack_2 
	addq(&q_2,k);				
    if(empty(&q_1)){
        printf("1-element stack\n");
        exit(2);											
    }
    k=deleteq(&q_1);
    addq(&q_2,k);	
    printf("QStion1 : k = %d \n",k);
    while(!empty(&q_2)){
    	addq(&q_1,deleteq(&q_2));
	}
    

//411440281 Lu-Wei-Yi   
//-------assign integer k the 9th element----------------------//

    k=deleteq(&q_1);
    addq(&q_2,k);
    int j;
	for(j=1;j<=8;j++){
        if(empty(&q_1)){
            printf("element is empty in %d\n",j);
            exit(3);										
        }   
        k=deleteq(&q_1);
        addq(&q_2,k);
    }
    printf("QStion2 : k = %d \n",k);
    while(!empty(&q_2)){
    	addq(&q_1,deleteq(&q_2));
	}


//-------assign integer k the bottom element----------------------//
	k=0;
    k=deleteq(&q_1);
	addq(&q_2,k);												
    while(!empty(&q_1)){
    	k=deleteq(&q_1);
		addq(&q_2,k);											
	}
    printf("QStion3 : k = %d \n",k);    
    while(!empty(&q_2)){
    	addq(&q_1,deleteq(&q_2));
	}
	
//411440281 LU-WEI-YI
//-------assign integer k the 2nd element from top----------------------//
	
	int bottom;
	k=0;
	k=deleteq(&q_1);
	addq(&q_2,k);												
	if(empty(&q_1)){
		printf("1-element stack\n");
		exit(4);
	}
    while(!empty(&q_1)){
    	k=bottom;
		bottom=deleteq(&q_1);
		addq(&q_2,bottom);
	}
    printf("QStion4 : k = %d \n",k);
    while(!empty(&q_2)){
    	addq(&q_1,deleteq(&q_2));
	}


//411440281 LU-WEI-YI    
//-------printout all the the element in stack---------------------//
	
	printf("QStion5 :     ");
	k=deleteq(&q_1);	
	addq(&q_2,k);													
	printf("%d <-top \n",k);											
	while(!empty(&q_1)){
		k=deleteq(&q_1);
		addq(&q_2,k);
		printf("              %d\n",k);													
	}
	return 0;
}
	
//411440281 Lu-Wei-Yi  

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: