ADD file via upload

lxf_branch
pwvl263yg 1 year ago
parent e95745dd9e
commit 3674ccdf62

@ -0,0 +1,122 @@
#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…
Cancel
Save