본문내용
ink=NULL;
}
else
{
top=data;
top->nextlink=temp;
}
}
void stackprint()//스택의 내용을 보여주는 함수
{
struct stack *temp = top;
printf("스택(LIFO순):\n");
if(temp==NULL)
{
printf("스택의 내용이 비였습니다.\n\n");
}
while(temp!=NULL)
{
printf("%d\n",temp->data);
temp=temp->nextlink;
}
}
void deletestack()//스택의 데이터를 삭제 하는 함수
{
struct stack *temp = top;
if(temp==NULL)
{
printf("스택의 내용이 비였습니다.\n\n");
}
else
{
printf("%d 를 삭제 합니다.\n",temp->data);
top=temp->nextlink;
free(temp);
}
}
void pushqueue()//큐에 데이터를 입력하는 함수
{
int inputdata;
struct queue *data;
data=(struct queue *)malloc(sizeof(struct queue));
printf("큐에 들어갈 데이터를 입력하세요:");
scanf("%d",&inputdata);
data->data = inputdata;
queuelink(data);// 데이터를 링크 리스트로 이어주는 함수
}
void queuelink(struct queue *data)
{
struct queue *temp=front;
struct queue *arc=rear;
if(temp==NULL)//스택에 하나의 데이터도 입력되지 않는 경우
{
front=data;
rear=data;
front->nextqueue=NULL;
}
else
{
arc->nextqueue=data;
rear=data;
}
}
void deletequeue()// 큐에 데이터를 삭제 하는 함수
{
struct queue *temp=front;
struct queue *arc=rear;
if(front==rear)
{
printf("큐 내용이 비였습니다.\n");
}
else if(temp->nextqueue==NULL)//데이터가 한개일 경우
{
printf("%d를 삭제 합니다.\n",temp->data);
front=NULL;
rear=NULL;
free(temp);
}
else
{
printf("%d를 삭제 합니다.\n",temp->data);
front=temp->nextqueue;
free(temp);
}
}
int queueprint()//큐의 내용을 보여주는 함수
{
struct queue *temp = front;
printf("큐(FIFO순):\n");
if(front-1==rear)
{
printf("큐 내용이 비였습니다.\n\n");
return 0;
}
do
{
printf("%d\n",temp->data);
temp=temp->nextqueue;
}while(temp!=rear->nextqueue);
return 0;
}
}
else
{
top=data;
top->nextlink=temp;
}
}
void stackprint()//스택의 내용을 보여주는 함수
{
struct stack *temp = top;
printf("스택(LIFO순):\n");
if(temp==NULL)
{
printf("스택의 내용이 비였습니다.\n\n");
}
while(temp!=NULL)
{
printf("%d\n",temp->data);
temp=temp->nextlink;
}
}
void deletestack()//스택의 데이터를 삭제 하는 함수
{
struct stack *temp = top;
if(temp==NULL)
{
printf("스택의 내용이 비였습니다.\n\n");
}
else
{
printf("%d 를 삭제 합니다.\n",temp->data);
top=temp->nextlink;
free(temp);
}
}
void pushqueue()//큐에 데이터를 입력하는 함수
{
int inputdata;
struct queue *data;
data=(struct queue *)malloc(sizeof(struct queue));
printf("큐에 들어갈 데이터를 입력하세요:");
scanf("%d",&inputdata);
data->data = inputdata;
queuelink(data);// 데이터를 링크 리스트로 이어주는 함수
}
void queuelink(struct queue *data)
{
struct queue *temp=front;
struct queue *arc=rear;
if(temp==NULL)//스택에 하나의 데이터도 입력되지 않는 경우
{
front=data;
rear=data;
front->nextqueue=NULL;
}
else
{
arc->nextqueue=data;
rear=data;
}
}
void deletequeue()// 큐에 데이터를 삭제 하는 함수
{
struct queue *temp=front;
struct queue *arc=rear;
if(front==rear)
{
printf("큐 내용이 비였습니다.\n");
}
else if(temp->nextqueue==NULL)//데이터가 한개일 경우
{
printf("%d를 삭제 합니다.\n",temp->data);
front=NULL;
rear=NULL;
free(temp);
}
else
{
printf("%d를 삭제 합니다.\n",temp->data);
front=temp->nextqueue;
free(temp);
}
}
int queueprint()//큐의 내용을 보여주는 함수
{
struct queue *temp = front;
printf("큐(FIFO순):\n");
if(front-1==rear)
{
printf("큐 내용이 비였습니다.\n\n");
return 0;
}
do
{
printf("%d\n",temp->data);
temp=temp->nextqueue;
}while(temp!=rear->nextqueue);
return 0;
}
소개글