02.数据结构

一、链表

作用:用于写邻接表;

邻接表作用:用于存储图或树;

1、用数组模拟单链表

#include<iostream>
using namespace std;const int N = 100010;// head 表示头结点的下标
// e[i] 表示结点i的值
// ne[i] 表示结点i的next指针是多少
// idx 存储当前已经用到了哪个点
int head, e[N], ne[N], idx, ;// 初始化
void init()
{head = -1;idx = 0;
}// 将x插到头结点
void add_to_head(int x)
{e[idx] = x;ne[idx] = head;head = idx;idx++;
}// 将x插到下标是k的点后面
void insert_node(int k, int x)
{e[idx] = x;ne[idx] = ne[k];ne[k] = idx;idx++;
}// 将下标是k的点后面的点删掉
void delete_node(int k)
{ne[k] = ne[ne[k]];
}int main()
{int m;cin >> m;init();while (m--){int k, x;char op;cin >> op;if (op == 'H'){cin >> x;add_to_head(x);}else if (op == 'D'){cin >> k;if (!k){head = ne[head];}delete_node(k - 1);}else{cin >> k >> x;insert_node(k - 1, x);}}int p = head;while (p != -1){cout << e[p] << " ";p = ne[p];}return 0;
}

2、用数组模拟双链表

#include<iostream>
using namespace std;const int N = 1000010;
int l[N], r[N], e[N], idx;
int m;// 初始化
void init() 
{// 0表示左端点,1表示右端点r[0] = 1;l[1] = 0;idx = 2;
}// 在下标是k的点的右边,插入x
void add(int k, int x) 
{e[idx] = x;r[idx] = r[k];l[idx] = k;l[r[k]] = idx;r[k] = idx;
}// 删除第k个点
void remove(int k) 
{l[r[k]] = l[k];r[l[k]] = r[k];
}int main() 
{return 0;
}

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

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

相关文章

Oracle11g安装配置详细教程

Oracle Database 11g是一款广泛使用的关系型数据库管理系统&#xff0c;它为企业级的应用提供了强大的数据管理功能。本文将详细介绍如何在Windows环境下安装和配置Oracle 11g。 准备工作 系统要求&#xff1a;确保你的系统满足安装Oracle 11g的最低要求。对于Oracle 11g Rele…

解决Typora导出HTML不显示图片

解决Typora导出HTML不显示图片 产生原因 Typora导出HTML不显示图片&#xff0c;可能时图片存放在我们的硬盘中。 我们可以将markdown中的图片转化为base64格式&#xff0c;嵌入到html中。 解决步骤 首先&#xff0c;下载 TyporaToBase64.jar 密码:45jq 其次&#xff0c;将…

【hcie-cloud】【26】华为云Stack主机安全防护

文章目录 前言主机安全概述主机安全概念主机安全风险与挑战 - 黑客入侵安全风险管理难安全合规审查严格 主机安全服务HSS详述企业主机安全服务介绍主机安全服务 - 实现原理&#xff08;主机安全&#xff09;主机安全服务 - 实现原理&#xff08;容器安全&#xff09;主机安全服…

java数据结构与算法刷题-----LeetCode18. 四数之和

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 此题为三数之和的衍生题&#xff0c;代码完全一样&#xff0c;只…

第75讲Avatar头像FooterHome实现

Avatar头像实现 avatar&#xff1a; <template><el-dropdown><span class"el-dropdown-link"><el-avatar shape"square" :size"40" :src"squareUrl" /></span><template #dropdown><el-drop…

亚马逊测评自养号系统稳吗?

在亚马逊这样一个全球最大的电商平台上&#xff0c;商家们不仅仅需要提供优质的产品&#xff0c;还需要拥有良好的产品评价来增加销售和提升品牌认知度。 然而&#xff0c;随着电商竞争的加剧&#xff0c;一些商家可能会尝试通过亚马逊测评自养号系统来增加产品评价的数量。但这…

Material Design

1.使用颜色 2. 处理文本 3.处理形状 ​​​​​​

C++重新入门-循环

目录 1.循环类型 while循环&#xff1a; for循环 基于范围的for循环(C11) do...while 循环 2.循环控制语句 3.无限循环 有的时候&#xff0c;可能需要多次执行同一块代码。一般情况下&#xff0c;语句是顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着…

JAVA设计模式之迭代器模式详解

迭代器模式 1 迭代器模式介绍 迭代器模式是我们学习一个设计时很少用到的、但编码实现时却经常使用到的行为型设计模式。在绝大多数编程语言中&#xff0c;迭代器已经成为一个基础的类库&#xff0c;直接用来遍历集合对象。在平时开发中&#xff0c;我们更多的是直接使用它&a…

【Jenkins】Jenkins关闭Jenkins关闭、重启

目录 一、Jenkins关闭、重启 二、Jenkins服务的启动、停止方法。 一、Jenkins关闭、重启 1.关闭Jenkins 只需要在访问jenkins服务器的网址url地址后加上exit&#xff0c;关闭Jenkins服务。 例如&#xff1a;http://localhost:8081/exit 2.重启Jenkies 只有在Jenkins服务启动…

python+flask+django医院预约挂号病历分时段管理系统snsj0

技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django/flask Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5.7 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm . 第一&#xff0c;研究分析python技术&#xff0c…

qt “美颜”

要想成为一名优秀的qt工程师 学会使用qss编程也是重要的 不可获缺的一部分 qss 简介和优势 QSS&#xff08;Qt Style Sheets&#xff09;是一种用于定义Qt应用程序界面外观和样式的样式表语言。它类似于CSS&#xff08;层叠样式表&#xff09;&#xff0c;但针对Qt框架进行了定…