forked from p3nqlbfe7/gitProject
parent
3674ccdf62
commit
5604e1377d
@ -1,122 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
|
||||
typedef struct {
|
||||
char name[20];
|
||||
char sex;
|
||||
} DataType;
|
||||
|
||||
struct Node {
|
||||
DataType data;
|
||||
struct Node* next;
|
||||
};
|
||||
typedef struct Node *PNode;
|
||||
struct Queue
|
||||
{
|
||||
PNode f;
|
||||
PNode r;
|
||||
};
|
||||
typedef struct Queue *LinkQueue;
|
||||
LinkQueue SetNullQueue_Link()
|
||||
{
|
||||
LinkQueue lqueue;
|
||||
lqueue = (LinkQueue)malloc(sizeof(struct Queue));
|
||||
if (lqueue != NULL)
|
||||
{
|
||||
lqueue->f = NULL;
|
||||
lqueue->r = NULL;
|
||||
}
|
||||
else
|
||||
printf("Alloc failure! \n");
|
||||
return lqueue;
|
||||
}
|
||||
|
||||
int IsNullQueue_link(LinkQueue lqueue)
|
||||
{
|
||||
return (lqueue->f == NULL);
|
||||
}
|
||||
|
||||
void EnQueue_link(LinkQueue lqueue, DataType x)
|
||||
{
|
||||
PNode p;
|
||||
p = (PNode)malloc(sizeof(struct Node));
|
||||
if (p == NULL)
|
||||
printf("Alloc failure!");
|
||||
else {
|
||||
p->data = x;
|
||||
p->next = NULL;
|
||||
if (lqueue->f == NULL)
|
||||
{
|
||||
lqueue->f = p;
|
||||
lqueue->r = p;
|
||||
}
|
||||
else
|
||||
{
|
||||
lqueue->r->next = p;
|
||||
lqueue->r = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
void DeQueue_link(LinkQueue lqueue)
|
||||
{
|
||||
struct Node * p;
|
||||
if (lqueue->f == NULL)
|
||||
printf("It is empty queue!\n ");
|
||||
else
|
||||
{
|
||||
p = lqueue->f;
|
||||
lqueue->f = lqueue->f->next;
|
||||
free(p);
|
||||
}
|
||||
}
|
||||
DataType FrontQueue_link(LinkQueue lqueue)
|
||||
{
|
||||
if (lqueue->f == NULL)
|
||||
{
|
||||
printf("It is empty queue!\n");
|
||||
}
|
||||
else
|
||||
return (lqueue->f->data);
|
||||
}
|
||||
|
||||
void DancePartner(DataType dancer[], int num)
|
||||
{
|
||||
LinkQueue Queue_head = SetNullQueue_Link();
|
||||
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
|
||||
if (!IsNullQueue_link(Queue_head) &&
|
||||
(FrontQueue_link(Queue_head).sex) != dancer[i].sex)
|
||||
{
|
||||
if (dancer[i].sex == 'F')
|
||||
printf("%s %s\n", dancer[i].name, Queue_head->f->data.name);
|
||||
else
|
||||
{
|
||||
printf("%s %s\n", Queue_head->f->data.name, dancer[i].name);
|
||||
}
|
||||
DeQueue_link(Queue_head);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnQueue_link(Queue_head, dancer[i]);
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
if (!IsNullQueue_link(Queue_head))
|
||||
{
|
||||
printf("%s", Queue_head->f->data.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
DataType dancer[9];
|
||||
for (int i = 0; i < 9; i++)
|
||||
scanf("%s %c", dancer[i].name, &dancer[i].sex);
|
||||
DancePartner(dancer, 9);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in new issue