queue.cpp
#include<stdio.h>
#include<stdlib.h>
typedef struct Tqueue_node queue_node;
typedef struct Tqueue_node {
int data;
queue_node *next;
} queue_node;
typedef struct {
queue_node *front, *rare;
} queue;
void add(queue *mqueue, int data);
queue_node *remove(queue *mqueue);
void traverse(queue *mqueue);
int main()
{
int data;
queue *mqueue = (queue *)malloc(sizeof(queue));
mqueue->front = mqueue->rare = NULL;
queue_node *rmvnode;
while (scanf("%d", &data) == 1) {
if (data == -1)
break;
else
add(mqueue, data);
traverse(mqueue);
}
while ((rmvnode = remove(mqueue)) != NULL) {
free(rmvnode);
traverse(mqueue);
}
return 0;
}
void add(queue *mqueue, int data)
{
queue_node *addnode = (queue_node *)malloc(sizeof(queue_node));
addnode->data = data;
addnode->next = NULL;
if (mqueue->rare == NULL)
mqueue->front = addnode;
else
mqueue->rare->next = addnode;
mqueue->rare = addnode;
}
queue_node *remove(queue *mqueue)
{
queue_node *rmvnode = mqueue->front;
if (rmvnode != NULL) mqueue->front = mqueue->front->next;
return rmvnode;
}
void traverse(queue *mqueue)
{
queue_node *curnode = mqueue->front;
while (curnode != NULL) {
printf("%d ", curnode->data);
curnode = curnode->next;
}
puts("");
}
--
全世界都知道我喜歡妳
唯一不知道ㄉ........
就是妳.......