0411代码,备战蓝桥杯基础数据结构

2024-04-12 04:04

本文主要是介绍0411代码,备战蓝桥杯基础数据结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.单链表

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int h,e[N],ne[N],idx;
int m;void addhead(int x){e[idx] = x;ne[idx] = h;h = idx ++;
}void add(int k,int x){e[idx] = x;ne[idx] = ne[k];ne[k] = idx ++;
}void delete1(int k){ne[k] = ne[ne[k]];
}int main()
{cin>>m;char op[2];h = -1;while(m--){scanf("%s",&op);if(op[0] == 'H'){int x;cin>>x;addhead(x);}if(op[0] == 'I'){int k,x;cin>>k>>x;add(k-1,x);}if(op[0] == 'D'){int k;cin>>k;if (k == 0) h = ne[h];//删除头节点要特判!!!! delete1(k-1);}}	for(int i=h;i!=-1;i=ne[i]){int j = e[i];cout<<j<<' ';}return 0;
}

2.栈:读入string要用cin

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int m;
int st[N];
int tt = -1;int main()
{cin>>m;while(m--){string op;cin>>op;if(op == "push"){int x;cin>>x;st[++tt] = x;}if(op == "empty"){if(tt==-1) cout<<"YES"<<endl;else cout<<"NO"<<endl;}if(op == "query"){cout<<st[tt]<<endl;}if(op == "pop"){tt--;}}return 0;} 

3.队列

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int m;
int q[N];
int tt = -1,hh;int main()
{cin>>m;while(m--){string op;cin>>op;if(op == "push"){int x;cin>>x;q[++tt] = x;}if(op == "empty"){if(hh>tt) cout<<"YES"<<endl;else cout<<"NO"<<endl;}if(op == "query"){cout<<q[hh]<<endl;}if(op == "pop"){hh++;}}return 0;} 

4.单调栈

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int n;
int st[N];
int tt;int main()
{cin>>n;for(int i=0;i<n;i++){int x;cin>>x;while(tt && st[tt] >= x){tt--;}if(tt) cout<<st[tt]<<' ';//第一个数序号是0,输出-1 else cout<<"-1"<<' ';st[++tt] = x;}return 0; 
}

5.单调队列:注意第二次更新hh=0,tt=-1

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010; int n,k;
int q[N],hh,tt=-1;
int a[N];int main()
{cin>>n>>k;for(int i=0;i<n;i++) cin>>a[i];//找最小值 for(int i=0;i<n;i++){while(hh<=tt && i-k+1 > q[hh]){hh++;//q数组是下标 }while(hh<=tt && a[q[tt]] >= a[i]){tt--;//则不可能作为答案输出 } q[++tt] = i;//要先添加进来,在窗口里,可能作为答案输出 if(i >= k-1){cout<<a[q[hh]]<<' ';}}cout<<endl;//找最大值int hh=0,tt=-1;for(int i=0;i<n;i++){while(hh<=tt && i-k+1 > q[hh]){hh++;//q数组是下标 }while(hh<=tt && a[i] >= a[q[tt]]){tt--;//则不可能作为答案输出 } q[++tt] = i;//要先添加进来,在窗口里,可能作为答案输出 if(i >= k-1){cout<<a[q[hh]]<<' ';}} return 0; } 

这篇关于0411代码,备战蓝桥杯基础数据结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896047

相关文章

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

MySQL实现多源复制的示例代码

《MySQL实现多源复制的示例代码》MySQL的多源复制允许一个从服务器从多个主服务器复制数据,这在需要将多个数据源汇聚到一个数据库实例时非常有用,下面就来详细的介绍一下,感兴趣的可以了解一下... 目录一、多源复制原理二、多源复制配置步骤2.1 主服务器配置Master1配置Master2配置2.2 从服

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据