算法与数据结构实验题 4.1 交易

1、题目:

2、代码:

#include<stdio.h>
#include<stdlib.h>
typedef struct qnode *qlink;
struct qnode
{
	int element;
	qlink next;
} Qnode;

typedef struct lque *Queue;
typedef struct lque
{
	qlink front;
	qlink rear;
} Lqueue;
int QueueEmpty(Queue Q)
{
	return Q->front==0;
}

void EnterQueue(Queue Q,int x)
{
	qlink p;
	p=(qlink)malloc(sizeof(Qnode));
	p->element=x;
	p->next=0;
	if(Q->front)
	{
		Q->rear->next=p;
	}
	else
	{
		Q->front=p;
	}
	Q->rear=p;
}

int DeleteQueue(Queue Q,int k)
{
	qlink p;
	int x;
	if(Q->front==Q->rear)
	{
		printf("%d",Q->front->element);
	}
	else
	{
		x=Q->front->element;
		if(k==1)
		{
			printf("%d",x);
		}
		p=Q->front;
		Q->front=Q->front->next;
		free(p);
	}
	return x;
}
int main()
{
	Queue Q=(Queue)malloc(sizeof*Q);
	Q->front=0;
	Q->rear=0;
	int n;
	scanf("%d",&n);
	int i;
	for(i=0; i<n; i++)
	{
		EnterQueue(Q,i+1);
	}
	int m=0;
	for(i=0; i<n; i++)
	{
		DeleteQueue(Q,1);
		if(m==n-2)
		{
			printf("\n");
		}
		else if(m!=n-1)
		{
			printf(" ");
		}
		m++;
		EnterQueue(Q,Q->front->element);
		DeleteQueue(Q,2);
	}
	return 0;
}
posted @ 2016-09-28 17:03  laixl  阅读(241)  评论(0编辑  收藏  举报