//Q是一个队列,S是一个空栈,实现将队列中的元素逆置的算法。

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#define Size 6
typedef struct SqNode//队列结点
{
int data;
struct SqNode* next;
}LinkNode;
typedef struct SqQueue//队列
{
LinkNode* front, * rear; //头指针和尾指针
}LinkQueue;
typedef struct LinkStack//栈
{
int data;
struct LinkStack* next;
}LinkStack;
void InitQueue(LinkQueue* Q)//假设用带头结点的链表来表示队列
{
Q->front = Q->rear = (LinkNode*)malloc(sizeof(LinkNode));
if (Q->front == NULL)//分配失败
return;
Q->rear->next = NULL;
return;
}
void InitStack(LinkStack** S)//用不带头结点的链表来表示栈,&S表示当前是指向链表指针的指针,所以要用形参要用二级指针
{
*S = NULL;
return;
}
bool EnQueue(LinkQueue* Q, int x)//入队
{
//无需判断满队
LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
if (s == NULL)//分配失败
return false;
s->data = x;
s->next = NULL;
Q->rear->next = s;
Q->rear = s;
return true;
}
bool Push(LinkStack** S, int x)//进栈
{
//无需判断是否满栈
//第一次入栈
if ((*S) == NULL)
{
LinkStack* p = (LinkStack*)malloc(sizeof(LinkStack));
if (p == NULL)//分配失败
return false;
p->data = x;
p->next = NULL;
(*S) = p;
}
//后续入栈
else 
{
LinkStack* q = (LinkStack*)malloc(sizeof(LinkStack));
if (q == NULL)//分配失败
return false;
q->data = x;
q->next = (*S);
(*S) = q;
}
return true;
}
int* DeQueue(LinkQueue* Q, int* x)//出队
{
if (Q->front == Q->rear)//空队
return NULL;
LinkNode* p = Q->front->next;
if (p == Q->rear)//恰好有一个元素
{
*x = p->data;
Q->front->next = NULL;
free(p);
Q->rear = Q->front;
return x;
}
*x = p->data;
Q->front->next = p->next;
free(p);
return x;
}
bool PrintList(LinkQueue Q)//打印队列
{
LinkNode* p = Q.front->next;
while (p != NULL)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return true;
}
bool PrintStack(LinkStack* S)//打印栈
{
LinkStack* p = S;
if (p == NULL)//空栈
return false;
while (p != NULL)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return true;
}
int main()
{
int arr[Size] = { 1,2,3,4,5,6 };//假设要输入1,2,3,4,5,6
LinkQueue Q;//定义一个队列
LinkStack* S;//定义一个栈
InitQueue(&Q);//初始化队列
InitStack(&S);//初始化栈

    int i;
for(i = 0;i < Size;i++)
EnQueue(&Q,arr[i]);//入队

    int* j;
for (i = 0; i < Size; i++)
{
j = DeQueue(&Q, &arr[i]);//出队
Push(&S, *j);//进栈
}

    //PrintList(Q);//队列打印测试
PrintStack(S);//栈打印测试
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94785.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毕马威 —— 公众对人工智能的信任、态度及使用情况调查

文章目录 前言 一、背景介绍 二、对人工智能的信任与接受度 三、人工智能的使用与认知情况 四、人工智能的益处与风险 五、人工智能的监管与治理 六、工作场所的人工智能应用 七、人工智能对工作的影响 八、学生对人工智能的应用 九、核心启示 1.新兴经济体在公众与员工人工智能…

基于Spring Session + Redis + JWT的单点登录实现

实现思路 用户访问受保护资源时&#xff0c;若未认证则重定向到认证中心认证中心验证用户身份&#xff0c;生成JWT令牌并存储到Redis认证中心重定向回原应用并携带令牌应用验证JWT有效性并从Redis获取会话信息用户在其他应用访问时&#xff0c;通过相同机制实现单点登录 代码…

微服务Eureka组件的介绍、安装、使用

微服务 Eureka 组件的介绍、安装与使用详解 在微服务架构中&#xff0c;服务注册与发现是至关重要的一环&#xff0c;而 Eureka 作为 Netflix 开源的服务注册中心&#xff0c;广泛应用于 Spring Cloud 微服务体系中。本文将带你全面了解 Eureka 的概念、安装及在 Spring Boot …

【PostgreSQL内核学习:通过 ExprState 提升哈希聚合与子计划执行效率(一)】

PostgreSQL内核学习&#xff1a;通过 ExprState 提升哈希聚合与子计划执行效率&#xff08;一&#xff09;引言背景补丁的意义补丁概述JIT & LLVM实际例子&#xff08;以 PostgreSQL 为例&#xff09;提交信息提交描述引入 ExprState 进行哈希计算&#xff1a;支持 JIT 编译…

web端播放flv视频流demo(flv.js的使用)

需求&#xff1a;原本是需要前端播放RTMP视频流的&#xff0c;但是现在的浏览器都不支持flash插件了&#xff0c;让用户安装flash插件也不现实&#xff0c;所以直接让后端将RTMP视频流转换成flv视频流给到前端进行播放。 直接上demo&#xff0c;直接就能播放&#xff0c;如果遇…

【拍摄学习记录】04-拍摄模式/曝光组合

曝光组合全自动半自动光圈优先手动挡【固定物体长时间不变时候、闪光灯时候、】手机上的光学变焦与数码变焦是不同的&#xff0c;使用档位推荐可以提升画质。手机夜景模式长曝光【车流轨迹、星轨】HDR 大光比【日落时候使用】专业模式&#xff0c;【感光度iso、快门可以调节】…

新liunx部署mysql过程问题

首先看下是什么发行版 cat /etc/os-release CentOS Linux 7 ################################## 使用 yum下载包 发现不行 源不行 那就换成阿里的 # 进入 yum 源配置目录 cd /etc/yum.repos.d/ # 备份所有默认 repo 文件&#xff08;以 CentOS 为例&#xff0c;其他系统…

Python 第三方库:Beautiful Soup(HTML/XML 解释提取)

Beautiful Soup 是一个 用于从 HTML 和 XML 文件中提取数据的 Python 第三方库。它为复杂的网页结构提供了简单易用的解析接口&#xff0c;尤其适合网页爬虫和数据提取任务。Beautiful Soup 提供树型结构访问、标签搜索、属性提取等功能&#xff0c;并支持多种解析器&#xff0…

使用STM32CubeMX使用CAN驱动无刷电机DJI3508

简介 文章为笔记性质 硬件包括 大疆C板 电机调速器C620 DJI3508电机 CAN知识介绍 CAN的概念 CAN是控制器区域网络&#xff08;Controller Area Network&#xff09;的缩写。CAN总线是一种适用于工业设备的高性能总线网络。说白了就是也就是一种通讯方式而已。 把多个设…

Wi-Fi 802.11s自组网/EasyMesh自组网/802.11ah物联网

一、前期调研结论 前面详细探讨了自组网和5G无线通信网络、WiFi无线通信网络的差异&#xff1a; 自组网 v.s 5G v.s WiFi-CSDN博客 从“分级道路”角度理解无线通信网络拓扑包括从当前工业应用场景具体案例了解终端无线通信网络&#xff1a; 5G无线通信网络场景&#xff08;…

【基于hyperledger fabric的教育证书管理系统】

教育证书管理系统 系统概述 项目背景 随着数字化转型的深入推进&#xff0c;教育证书作为个人学术成就和专业资质的重要凭证&#xff0c;在就业市场、高等教育和职业发展中扮演着关键角色。然而&#xff0c;传统教育证书管理体系面临着数据孤岛、证书伪造、验证流程繁琐以及跨机…

【Flask】测试平台开发,集成禅道

概述&#xff1a; 由于公司多数测试人员还是在使用禅道&#xff0c;为了方便&#xff0c;就将禅道直接集成在我们的测试平台中 一般可以有几种实现方法 调用禅道的API集成集成本地部署的禅道-可能有跨域问题&#xff0c;需要解决 由于我这里已经部署了一台本地的禅道系统&…

《UE5_C++多人TPS完整教程》学习笔记45 ——《P46 待机与跳跃(Idle And Jumps)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P46 待机与跳跃&#xff08;Idle And Jumps&#xff09;》 的学习笔记&#xff0c;该系列教学视频为计算机工程师、程序员、游戏开发者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09; St…

用html+js下拉菜单的demo,当鼠标点击后展开,鼠标点击别的地方后折叠

使用html js实现下拉菜单demo&#xff0c;因为copy的网站菜单功能失效&#xff0c;就需要自己写一个逻辑&#xff0c;点击其他区域折叠菜单&#xff0c;可以参考&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF…

OpenCV 核心技术:颜色检测与几何变换实战

在计算机视觉任务中&#xff0c;颜色空间转换和图像几何变换是两大基础且高频的操作 —— 前者用于精准分割特定颜色目标&#xff08;如交通信号灯、物体追踪&#xff09;&#xff0c;后者用于调整图像的尺寸、位置和视角&#xff08;如文档矫正、图像拼接&#xff09;。本文将…

[HFCTF2020]EasyLogin

文章目录TRYWP总结TRY 注册admin报错username wrong。 随便注册一个用户点击GetFlag&#xff0c;permission deny。 猜测可能是需要admin权限。 看cookie发现有&#xff1a; sses:aok&#xff1a;eyJ1c2VybmFtZSI6ImEiLCJfZXhwaXJlIjoxNzU2NDU1NjczMTAxLCJfbWF4QWdlIjo4NjQwM…

Java接口和抽象类的区别,并举例说明

Java接口和抽象类是面向对象编程中实现抽象的两种机制&#xff0c;它们在语法、设计目的和使用场景上有显著区别&#xff1a;一、核心区别‌定义方式‌抽象类&#xff1a;使用abstract class声明&#xff0c;可包含抽象方法和具体方法45。接口&#xff1a;使用interface声明&am…

docker-相关笔记

1: 导入镜像 docker load -i myimage.tar# 导出镜像 docker save myimage:latest > myimage.tar # 导入镜像 docker load -i myimage.tardocker load -i <文件> 功能&#xff1a;用于导入通过 docker save 命令导出的镜像归档文件&#xff08;通常是 .tar 格式&#…

自然语言提取PDF表格数据

自然语言提取PDF表格数据PDF v8.2的文档解决方案与OpenAI实现了无缝的AI集成&#xff0c;可将非结构化PDF转换为可用数据。MESCIUS 推出的 PDF 文档解决方案 (DsPdf) 是一款软件开发工具包&#xff0c;它提供了 .NET Core 库和一个 JavaScript PDF 查看器&#xff0c;用于处理和…

飞牛Nas每天定时加密数据备份到网盘,基于restic的Backrest笔记分享

1. 前言 受前辈“RAID≠备份”的经验&#xff0c;也考虑到硬盘故障时 RAID 重建步骤繁琐&#xff0c;我干脆放弃阵列&#xff0c;直接单盘运行。 重要数据则加密后上传至大厂云盘&#xff1a;一方面文件对外不可读&#xff0c;规避扫描和谐&#xff1b;另一方面依靠大厂的数据安…