本周学习的相关知识

#include<stdio.h>
#include<stdlib.h>
//1 链队的定义====================
typedef int ElemType;
typedef struct LNode//结点定义
{
	ElemType data;//数据域
	LNode *next;//指针域
}LNode;
typedef struct //链队定义 
{
	LNode *front;//队首指针
	LNode *rear;//队尾指针
}QUEUE;

//2 链队的基本操作================
//2.1 初始化
void InitQueue(QUEUE *Q)
{
	Q->front=(LNode *)malloc(sizeof(LNode));
	Q->rear=Q->front;
	Q->front->next=0;
}
//2.2 入队
void EnQueue(QUEUE *Q, ElemType e)
{
	LNode *p;
	p=(LNode *)malloc(sizeof(LNode));//产生一新结点
	p->data=e;//存储新元素
	p->next=0;
	Q->rear->next=p;
	Q->rear=p;	
}
//2.3 出队
void DeQueue(QUEUE *Q, ElemType *e)
{	LNode *p;
	if(Q->front==Q->rear)
	{
		printf("队列是空的。\n");
		return;
	}
	*e=Q->front->next->data;
	p=Q->front->next;
	Q->front->next=p->next;
	if(p==Q->rear)
		Q->rear=Q->front;
	free(p);
}

//3 主函数==========================
void main()
{	int i;
	QUEUE duilie;

	InitQueue(&duilie);

	for(i=1; i<=10; i++)
		EnQueue(&duilie, 10*i);

	ElemType e;
	while(duilie.front!=duilie.rear)
	{
		DeQueue(&duilie, &e);
		printf("%d ",e);
	}
}

 

posted on 2016-04-07 21:06  ssangelia  阅读(171)  评论(2编辑  收藏  举报

导航