当前位置: 首页 > 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/news/315681.html

相关文章:

  • 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技术特性
  • 高效打造知识图谱,使用LlamaIndex Relik实现实体关联和关系抽取
  • 火车站高铁站站点时刻查询网站计算机毕设/动车站点时刻查询
  • WebRTC编译后替换libwebrtc.aar时提示找不到libjingle_peerconnection_so.so库
  • 基于单片机控制的程控开关电源研究
  • list(一)
  • 基于微信小程序的健身房管理系统
  • ROS第五梯:ROS+VSCode+C++单步调试
  • [Golang] Context
  • GNU链接器(LD):设置入口点(ENTRY命令)的用法及实例解析
  • 科研绘图系列:R语言箱线图(boxplot)