【考研复习】24王道数据结构课后习题代码|第3章栈与队列

文章目录

  • 3.1 栈
  • 3.2 队列
  • 3.3 栈和队列的应用

3.1 栈

在这里插入图片描述

int symmetry(linklist L,int n){char s[n/2];lnode *p=L->next;int i;for(i=0;i<n/2;i++){s[i]=p->data;p=p->next;}i--;if(n%2==1) p=p->next;while(p&&s[i]==p->data){i--;p=p->next;}if(i==-1) return 1;else return 0;
}

在这里插入图片描述

typedef struct {int stack[Max];int top[2];
}stk;
stk s;
int push(int i, int x){if(i<0||i>1){cout<<"no stack"<<endl;return -1;}if(s.top[1]-s.top[0]==1){cout<<"full stack"<<endl;return -1;}switch (i){case 0:s.stack[++s.top[0]]=x; return 1;break;case 1:s.stack[++s.top[1]]=x; return 1;break;}
}
int pop(int i){if(i<0||i>1){cout<<"no stack"<<endl;return -1;}switch (i){case 0:if(s.top[0]==-1){cout<<"empty stack"<<endl;return -1;}else{return s.stack[s.top[0]--];}break;case 1:if(s.top[0]==Max){cout<<"empty stack"<<endl;return -1;}else{return s.stack[s.top[1]--];}break;}
}

3.2 队列

在这里插入图片描述

#define Maxsize 10
typedef struct{int data[Maxsize];int rear,front,tag;
}SqQueue;
int EnQueue(SqQueue &Q, int x){if(Q.front==Q.rear&&Q.tag==1) return 0; //队列满了Q.data[Q.rear]=x;Q.rear=(Q.rear+1)%Maxsize;Q.tag=1;return 1;
}
int DeQueue(SqQueue &Q, int x){if(Q.front==Q.rear&&Q.tag==0) return 0; //队空x=Q.data[Q.front];Q.front=(Q.front+1)%Maxsize;Q.tag=0;return 1;
}

在这里插入图片描述
伪代码

void inverse(stack &s, queue &q){while(!queueempty(q)){x=dequeue(q);push(s,x);}while(!stackempty(s)){pop(s,x);enqueue(q,x);}
}

在这里插入图片描述

int enqueue(stack &s1, stack &s2, int e){if(!(stackoverflow(s1))){push(s1,e);return 1;}if(stackoverflow(s1)&&!(stackempty(s2))){cout<<" stack is overflow. "<<endl;return 0;}if(stackoverflow(s1)&&stackempty(s2)){while(!(stackempty(s1))){pop(s1,x);push(s2,x);}}push(s1,e);return 1;
}
void dequeue(stack &s1,stack &s2, int &x){if(!stackempty(s2)){pop(s2,x);}else if(stackempty(s1)){cout<<" stack is empty"<<endl;}else{while(!stackempty(s1)){pop(s1,x);push(s2,x);}pop(s2,x);}
}
int queueempty(stack s1,stack s2){if(stackempty(s1)&&stackempty(s2)){return 1;}else return 0;
}

在这里插入图片描述

3.3 栈和队列的应用

在这里插入图片描述

#include <iostream>
#include <stack>
using namespace std;
bool check(char str[]){stack <char> sck; int i=0;char temp;while(str[i]!='\0'){if(str[i]=='('||str[i]=='{'||str[i]=='[') {sck.push(str[i]);break;}else if(str[i]==']'){temp = sck.top();sck.pop();if(temp!='[') return false;}else if(str[i]==')'){temp = sck.top();sck.pop();if(temp!='(') return false;}else if(str[i]=='}'){temp = sck.top();sck.pop();if(temp!='{') return false;}}if(sck.empty()) return true;return false;
}
int main(){char *str=(char*)"()[](}{}()";cout<<str<<endl;if(!check(str)) cout<<"no !!"<<endl;else cout<<"yes!!1"<<endl;return 0;}

在这里插入图片描述

#include <iostream>
#include <stack>
using namespace std;
void train_arrange(char *train){stack <char> sck;char *p=train,*q=train,t;while(*p){if(*p=='H') {sck.push(*p);}else{*(q++)=*p;}p++;}while (!sck.empty()){t = sck.top();sck.pop();*(q++)=t;}}
int main()
{char str[11]="HSHSHHHSHS";train_arrange(str);cout<<str<<endl;return 0;
} // namespace std;

在这里插入图片描述
在这里插入图片描述

#include <iostream>
#define maxsize 100
using namespace std;
double p(int n, double x){struct stack{int no;double val;}st[maxsize];int top=-1,i;double fv1=1,fv2=2*x;for(i=n;i>=2;i--){top++;st[top].no=i;}while(top>0){st[top].val=2*x*fv2-2*(st[top].no-1)*fv1;fv1=fv2;fv2=st[top].val;top--;}if(n==0){return fv1;}return fv2;
}
int main(){
double ans1=p(1,1.9);cout<<ans1<<endl;
}

在这里插入图片描述

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

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

相关文章

Python flask-restful 框架讲解

1、简介 Django 和 Flask 一直都是 Python 开发 Web 的首选&#xff0c;而 Flask 的微内核更适用于现在的云原生微服务框架。但是 Flask 只是一个微型的 Web 引擎&#xff0c;所以我们需要扩展 Flask 使其发挥出更强悍的功能。 python flask框架详解&#xff1a;https://blog.…

sentinel简单使用

核心demo&#xff1a; 1 引入依赖: <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.8.0</version> </dependency>2 核心代码&#xff1a; 3 限流保护代码&#xff1a;…

【Megatron-DeepSpeed】张量并行工具代码mpu详解(四):张量并行版Embedding层及交叉熵的实现及测试

相关博客 【Megatron-DeepSpeed】张量并行工具代码mpu详解(四)&#xff1a;张量并行版Embedding层及交叉熵的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(三)&#xff1a;张量并行层的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一)&#xff1a…

【HarmonyOS】@ohos.request 上传下载的那些事儿

【关键字】 ohos.request、上传下载​ 【写在前面】 在进行HarmonyOS应用开发时&#xff0c;可能需要进行上传或下载文件功能开发&#xff0c;本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。 【上传开发步骤】 步骤1&#xff1a;上传下载接口需要申请ohos.permis…

GitOps 与 DevOps:了解关键差异,为企业做出最佳选择

在软件开发领域&#xff0c;GitOps 和 DevOps 是加强协作和实现软件交付流程自动化的重要技术。虽然这两种模式都旨在提高软件开发生命周期的效率&#xff0c;但它们的核心原则和实施方式却各不相同。 本篇文章将帮助您了解 GitOps 和 DevOps 之间的差异、它们的工作流程&am…

新知识:Monkey 改进版之 App Crawler

原生Monkey 大家知道Monkey是Android平台上进行压力稳定性测试的工具&#xff0c;通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷&#xff1a; 事件太过于随机&#xff0c;测试有效性大打折扣…

【2023新教程】树莓派4B开机启动-树莓派第一次启动-树莓派不使用显示器启动-树莓派从购买到启动一步一步完全版!

背景 闲来无事&#xff0c;在咸鱼上买了一个树莓派4B。买来配件都十分齐全&#xff0c;于是就想着启动来测试一下。下面是树莓派无显示器第一次启动的全过程&#xff0c;包含安装系统。 网上的教程大多需要额外使用显示器、鼠标、键盘之类的外设。然而&#xff0c;树莓派本身就…

从一到无穷大 #10 讨论 Apache IoTDB 大综述中看到的优势和不足点

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言问题定义新技术数据模型schemalessTsfile设计双MemTable高级可扩展查询其他 IotD…

免费开源的多种人工智能项目,比如:训练一个模型,让人工智能玩王者荣耀

免费开源的多种人工智能项目&#xff0c;比如&#xff1a;训练一个模型&#xff0c;让人工智能玩王者荣耀。 全文大纲 PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化。 Depix - 给打了马赛克的文字去码。 TecoGAN - 给视频去马赛克或者进行超分辨率。 Sk…

计算机网络-专业术语

计算机网络-专业术语 实体 实体:任何可发送或接收信息的硬件或软件进程 对等实体:收发双方相同层次中的实体 协议 控制两个对等实体进行逻辑通信的规则的集合 协议三要素 语法 定义所交换的信息的格式 是用户数据与控制信息的结构和格式 语义 定义收发双方所需要完成的操作…

go 切换代理

常用 $ go env -w GO111MODULEon $ go env -w GOPROXYhttps://goproxy.cn,direct 切换成阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct 很多需要切换到阿里云才行 删除 $ go env -u GOPROXY 查看 $ go env 或者 go env list go get 出错的时候 …

Kotlin 基础教程一

Kotlin 基本数据类型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…

一 、个性化电商广告推荐系统介绍

一 个性化电商广告推荐系统介绍 1.1 数据集介绍 Ali_Display_Ad_Click是阿里巴巴提供的一个淘宝展示广告点击率预估数据集 数据集来源&#xff1a;天池竞赛 原始样本骨架raw_sample 淘宝网站中随机抽样了114万用户8天内的广告展示/点击日志&#xff08;2600万条记录&#xff…

LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署 参考资料 1、LangChain ChatGLM2-6B 搭建个人专属知识库中的LangChain ChatGLM2-6B 构建知识库这一节&#xff1a;基本的逻辑和步骤是对的&#xff0c;但要根据Windows和现状做很多调整。 2、没有动过model_config.py中的“LORA_MOD…

validation之自定义注解@Constraint

前言&#xff1a; 首先&#xff0c;接口参数校验应该都不陌生&#xff0c;大部分应该都会借助javax.validation进行快捷校验&#xff0c;一般都是在入参字段上添加NotNull、NotEmpty等&#xff0c;对于一些特殊的入参校验逻辑&#xff0c;可能不是很适用&#xff0c;现在介绍一…

【ECMAScript】ES6-ES11学习笔记

文章目录 注意事项1.声明变量2.定义常量3.解构赋值4.模板字符串5.简化对象写法6.箭头函数7.参数默认值8.rest参数9.扩展运算符10.Symbol11.生成器函数12.Promise基本语法13.集合set14.Map15.类class16.数值扩展17.对象私有属性18.对象方法扩展19.js文件模块化20.async和await21…

数据库操作不再困难,MyBatis动态Sql标签解析

系列文章目录 MyBatis缓存原理 Mybatis的CachingExecutor与二级缓存 Mybatis plugin 的使用及原理 MyBatis四大组件Executor、StatementHandler、ParameterHandler、ResultSetHandler 详解 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难&#xff0c;MyBatis动态S…

Neo4j之MATCH基础

1】基本匹配和返回&#xff1a;查找所有节点和关系&#xff0c;返回节点的标签和属性。 MATCH (n) RETURN n;2】条件筛选&#xff1a;查找所有名为 "Alice" 的人物节点。 MATCH (person:Person {name: Alice}) RETURN person;3】关系查询&#xff1a;查找所有和 &q…

Centos7.6 安装mysql过程全记录

在centos 7.6上 离线安装mysql 的步骤&#xff0c;可参考下文&#xff1a; 一、查看当前MySQL的安装情况并卸载 1. 查看当前MySQL的安装情况 查找之前是否安装了MySQL rpm -qa|grep -i mysql 2.卸载mysql 如果已经安装mysql&#xff0c;则需要先停止MySQL&#xff0c;再删除…

YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 论文&#xff1a;https://arxiv.org/abs/2110.02178 1简介 MobileviT是一个用于移动设备的轻量级通用可视化Transformer&#xff0c;据作者介绍&#xff0c;这是第一次基于轻量级CNN网络性…