//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
To embed this project on your website, copy the following code and paste it into your website's HTML: