当前位置: 首页 > article >正文

循环单链表来表示队列

设结点结构为(data,link),试用一个全局指针P和某种链接结构实现一个队列,画出示意图,并给出入队push,出对pop和判空empty过程。要求时间复杂度均为O(1)

思想:要求时间复杂度为O(1),用只设尾指针的循环单链表(带头结点)来实现。

代码:

bool empty(LinkQueue p){//判空 
	return p->next=p;
}

void push(LinkQueue &p,ElemType x){//入队 
	Qnode* s;
	s=(Qnode*)malloc(sizeof(Qnode));
	s->data=x;
	s->next=p->next;
	p->next=s;
	p=s;
}

bool pop(LinkQueue &p,ElemType x){
	Qnode *s;
	if(empty(p)){
		printf("空队列\n");
		return false; 
	}
	//出队,链对默认有头节点 
	s=p->next->next;
	p->next->next=s->next;
	
	x=s->data;
	if(p==s) p=p->next;
	free(s);
	return true; 
}


http://www.kler.cn/a/315681.html

相关文章:

  • React的基础API介绍(二)
  • Unity3D实现视频和模型融合效果
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 普通电脑上安装属于自己的Llama 3 大模型和对话客户端
  • MyBatis CRUD快速入门
  • Gsensor加速度传感器数据异常及概率性卡死
  • Qt Debugging帮助文档
  • Packet Tracer - 配置编号的标准 IPv4 ACL(两篇)
  • jQuery 入口函数 详解
  • IT行业中的工作生活平衡探讨
  • Android 内核开发之—— repo 使用教程
  • Kotlin 函数和变量(四)
  • 双向链表:实现、操作与分析【算法 17】
  • 【Fastapi】参数获取,json和query
  • 深度学习02-pytorch-05-张量的索引操作
  • 2024 年最新前端ES-Module模块化、webpack打包工具详细教程(更新中)
  • Android 车载应用开发指南 - CarService 详解(下)
  • 在Spring Boot中实现多环境配置
  • 汽车总线之----FlexRay总线
  • LeetCode_sql_day31(1384.按年度列出销售总额)
  • C# 委托与事件 观察者模式
  • Java项目实战II基于Java+Spring Boot+MySQL的植物健康系统(开发文档+源码+数据库)
  • 设计模式之复合模式
  • 高级java每日一道面试题-2024年9月16日-框架篇-Spring MVC和Struts的区别是什么?
  • Redis发布和订阅
  • 波分技术基础 -- Liquid OTN技术特性