数据结构-链队列

链队列的创建,入队,出队操作

内容很简单,上代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
#include<math.h>

typedef int QElemtype;

typedef struct QNode{
	QElemtype data;
	struct QNode *Next; 
}QNode,*QueuePtr;

typedef struct{
	QueuePtr flont;
	QueuePtr rear; 
}LinkQueue;

void InitQueue(LinkQueue &Q){
	Q.rear = (QueuePtr)malloc(sizeof(QNode));//队列头结点 
	if(!Q.rear) {
		printf("队列初始化失败!\n");
		return;
	}
	Q.flont = Q.rear; 
	Q.rear->Next = NULL;
	printf("队列初始化成功!\n");
}

void EnQueue(LinkQueue &Q,QElemtype e){
	QueuePtr s = (QueuePtr)malloc(sizeof(QNode));
	if(!s) {
		printf("内存分配失败!\n");
		return;
	}
	s->data = e;
	s->Next = Q.rear->Next;
	Q.rear->Next  = s;
	Q.rear = s;
	printf("入队操作成功!\n");
}

void DeQueue(LinkQueue &Q,QElemtype &e){//用e来保存出队元素 
	if(Q.flont==Q.rear) {
		printf("队列为空,出队操作失败!\n");
		return;
	}
	QueuePtr p = Q.flont->Next; 
	e = p->data;
	Q.flont->Next = p->Next;
	if(p==Q.rear) Q.rear = Q.flont;
	free(p);
	printf("出队成功!\n");
	printf("出队元素为:%d\n",e);
}

int main(){
	LinkQueue Q;
	InitQueue(Q);
	printf("1 入队 ,2 出队 ,按其他结束\n");
	int c,e;
	while(1){
		printf("请输入接下来要进行的操作:\n");
		scanf("%d",&c);
		if(c==1) {
		  printf("请输入入队的元素:\n");
		  scanf("%d",&e);
		  	EnQueue(Q,e);
		}
		else if(c==2){
			DeQueue(Q,e);
			
		}
		else break;
	}
	
}

测试结果

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值