`
birthdog
  • 浏览: 9549 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

链队(1)

c 
阅读更多
#include"stdio.h"
#include"malloc.h"

typedef struct LNode
{
	int data;
	LNode *next;
}LNode;

typedef struct 
{
	LNode *front;
	LNode *rear;
}Queue;

void InitQueue(Queue *&q)
{
	q = (Queue *)malloc(sizeof(Queue));
	q->front = q->rear = NULL;
}

void InsertQueue(Queue *q, int x)
{
	LNode *r;
	r = (LNode *)malloc(sizeof(LNode));
	r->data = x;
	r->next = NULL;
	if(q->rear==NULL && q->front == NULL)
	{
		q->front = q->rear = r;
	}
	else
	{
		q->rear->next = r;
		q->rear = r;
	}
}

void deleteQueue(Queue *q, int &x)
{
	LNode *r,*s;
	r = q->front;
	if(r!=NULL)
	{
		if(r==q->rear)
		{
			q->front = q->rear = NULL;
		}
		else{
			q->front = r->next;
		}
		x = r->data;
		free(r);
	}
}


void display(Queue *q)
{
	LNode *r;
	r = q->front;
	printf("The List: ");
	while(r!=q->rear)
	{
		printf("%d  ",r->data);
		r = r->next;
	}
	printf("%d  ",r->data);
	printf("\n");
}

void main()
{
	Queue *q;
	InitQueue(q);
	for(int i=1;i<5;i++)
		InsertQueue(q,i);
	display(q);
	int x;
	deleteQueue(q,x);
	printf("The delete element is %d \n",x);
	display(q);
}



   NODE <--- NODE <--- NODE <--- NODE
    rear                                                    front
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics