<pre class="has">


//Accepted Code:

include <bits/stdc++.h>

using namespace std;
const int MAXN = 100;
struct edge {

int num;
char x[MAXN], y[MAXN];

}ap;
typedef edge ElemType;
typedef struct ListPtr {

ElemType data;
ListPtr *next;

}*lists;
int len;
lists head, tail;
void Alloc(lists &p) {


p = (ListPtr *)malloc(sizeof(ListPtr));
p -> next = NULL;

}
void link() {

len = 0;
Alloc(head);
tail = head;

}
void push(ElemType e) {

lists p, r = head;
Alloc(p);
p -> data = e;
while (r -> next != NULL && e.num >= r -> next -> data.num)
    r = r -> next;
p -> next = r -> next;
r -> next = p;
len++;

}
void pop() {

len--;
lists p = head -> next;
head -> next = p -> next;
if (p == tail)
    tail = head;
free(p);

}
ElemType front() {

return head -> next -> data;

}
int main() {

int num;
char opt[5], x[MAXN], y[MAXN];
link();
int top = 1;
while (~scanf("%s", opt)) {
    if (opt[0] != 'P') {
        if (!len)
            printf("EMPTY QUEUE!\n");
        else {
            ap = front();
            pop();
            printf("%s %s\n", ap.x, ap.y);
        }
    }
    else {
        scanf("%s%s%d", ap.x, ap.y, &ap.num);
        push(ap);
    }
}
return 0;

}

标签: Windows, int, head, Queue, Message, lists, len, next, ap

相关文章推荐

添加新评论,含*的栏目为必填