//Queue
/*
#include<stdio.h>
int front;
int rear;
int max = 5;
int queue[5] = {};
void init()
{
front = 0;
rear = 0;
}
void view()
{
int i;
printf("queue status\n");
printf("----0 ----1 ----2 ----3 ----4\n");
for(i = 0; i < max; i++)
{
printf("%05d ", queue[i]);
}
printf("\n");
}
void dequeue()
{
int data;
if(rear == front)
{
printf("queue is empty\n");
return;
}
front = (front + 1)% max;
printf("output data: %d\n", queue[front]);
queue[front] = 0;
}
void enqueue(int k)
{
if((rear + 1)%max == front)
{
printf("queue is full\n");
return;
}
rear = (rear + 1) % max;
queue[rear] = k;
}
int main()
{
int n, k;
for( ; ; )
{
printf("1: input\n2:output\n3: view\n>>>>>>>>>>>>>>");
scanf("%d", &n);
switch(n)
{
case 1:
printf("input: ");
scanf("%d", &k);
enqueue(k);
break;
case 2:
dequeue();
break;
case 3:
view();
break;
}
}
return 0;
*/
//Stack
/*
#include<stdio.h>
int MAXSIZE = 8;
int stack[8];
int top;
void init()
{
top = -1;
}
void view()
{
for(int i = 0; i<=top ; i++)
{
printf("%d ",stack[i]);
}
printf("\n");
}
int pop()
{
int data;
if(top == -1){
return 0;
}
data = stack[top];
stack[top--]=0;
return data;
}
void push(int data)
{
if(top ==MAXSIZE){
return;
}
top = top + 1;
stack[top] = data;
}
int main()
{
int data;
init();
push(3);
push(5);
push(9);
push(1);
push(12);
push(15);
view();
return 0;
}
*/
//#include<stdio.h>
//
//int front;
//int rear;
//int max = 100;
//int beforecheck;
//int queue[100] = {};
//
//void init()
//{
// front = -1;
// rear = -1;
//}
//
//void view()
//{
// int i;
//
// printf("queue status\n");
// printf("----0 ----1 ----2 ----3 ----4\n");
//
// for(i = 0; i < max; i++)
// {
// printf("%05d ", queue[i]);
// }
// printf("\n");
//}
//
//int dequeue()
//{
// int data;
//
// front++;
// data = queue[front];
// queue[front] = 0;
// return data;
//}
//
//void enqueue(int k)
//{
// queue[++rear] = k;
//}
//
//int main()
//{
// int n, i, j, x, y, num, d, cnt = 0;
// int visit[101] = {};
// int arr[101][101] = {};
//
// init();
//
// scanf("%d", &num);
// scanf("%d", &n);
// for(i = 0; i < n; i++){
// scanf("%d %d", &x, &y);
// arr[x][y] = 1;
// arr[y][x] = 1;
// }
//
//
// visit[1] = 1;
// for(i = 0; ; i++){
// if(i == 0){
// d = 1;
// }
// else{
// d = dequeue();
// }
// for(j = 1 ; j <= num ; j++)
// {
// if(arr[d][j] == 1 && visit[j] == 0)
// {
// enqueue(j);
// visit[j]=1;
// cnt++;
// }
// }
// if(front == rear) break;
// }
// printf("%d", cnt);
// return 0;
//}