当前位置: 首页 > news >正文

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。

前驱元素:A在B前面,称A为B的前驱元素。

后继元素:B在A后面,称B为A的后继元素。

线性表特征:

1.一个元素没有前驱元素,就是头结点;

2.最后一个元素没有后继元素,就是尾结点;

3.除了头结点和尾结点,都具有前驱和后继

线性表分为顺序表和链表。

1.顺序表

顺序表是以数组形式保存在内存一组地址连续的存储单元上,数组之间的逻辑关系代表了物理存储的相邻关系。

 顺序表容量可变:

1.扩容:数组太小,创建两倍容量容纳新元素。

2.缩小:数组元素小于1/4,创建一个原数组容量1/2的新数组存储元素。

顺序表遍历:

遍历一般使用foreach循环,如需支持需要:

1.实现Iterable,重写iterator方法;

2.内部再实现一个SIterator,实现Iterator接口,重写hasnext和next方法。

顺序表底层使用数组实现,数组长度固定,因此设计到了扩容操作,当扩容时,耗时增加,元素越多越明显。

2.链表

顺序表查询很快,但是更新效率低,每一个更新都伴随着大量数据的移动。

链表是在物理上非连续、非顺序的存储结构,物理结构不能直观的表示数据元素的逻辑顺序,数据的逻辑顺序由链表中的指针连接实现的。

链表由一系列结点组成,结点可以在运行时动态生成。

结点类:

public class Node<T> {
//存储元素
public T item;
//指向下一个结点
public Node next;
public Node(T item, Node next) {
this.item = item;
this.next = next;
}
}

3.单向链表:

单向链表由多个结点组成,每个结点由一个数据和指针组成,头结点不存粗数据,指针指向第一个真正存储数据的结点。

4. 双向链表

双向链表由多个结点组成,每个结点由数据和两个指针组成,一个指针指向前驱结点,一个指针指向后继结点。头结点数据和前驱指针为null,后继结点指向第一个真正存储数据的结点。

private class Node{
public Node(T item, Node pre, Node next) {
this.item = item;
this.pre = pre;
this.next = next;
}
//存储数据
public T item;
//指向上一个结点
public Node pre;
//指向下一个结点
public Node next;
}

链表在插入和删除的时间复杂度上和顺序表一样,但也有优势,在物理地址上的不连续,代表不需要扩容,也没有元素之间的交换。

实际程序:查询多,使用顺序表。增删多,使用链表。

5.栈

一种先进后出(FILO)的数据结构。一种只能在一端进行插入和删除操作的特殊线性表。

数据进入栈是压栈,数据出栈是弹栈。

 6.逆波兰表达式

中缀表达式:1+3*2,2-(1+3)

特点:二元运算符总是在两个操作数中间。

逆波兰表达式(后缀表达式):abc-*d+ 对应着a*(b-c)+d 

运算符总书放在操作数后面。

7.队列

队列是基于先进先出(FIFO)的数据结构,是一段插入另一端删除的特殊线性表。先进入的数据,先读取。

相关文章:

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。 前驱元素&#xff1a;A在B前面&#xff0c;称A为B的前驱元素。 后继元素&#xff1a;B在A后面&#xff0c;称B为A的后继元素。 线性表特征&#xff1a; 1.一个元素没有前驱元素&#xff0c;就是头结点&#xff1b; 2.最后一个…...

深入浅出Pytorch函数——torch.nn.init.xavier_uniform_

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

优橙内推安徽专场——5G网络优化(中高级)工程师

可加入就业QQ群&#xff1a;801549240 联系老师内推简历投递邮箱&#xff1a;hrictyc.com 内推公司1&#xff1a;浙江省邮电工程建设有限公司 内推公司2&#xff1a;北京宜通华瑞科技有限公司 内推公司3&#xff1a;浙江明讯网络技术有限公司 浙江省邮电工程建设有限公司 …...

2023年计算机设计大赛国三 数据可视化 (源码可分享)

2023年暑假参加了全国大学生计算机设计大赛&#xff0c;并获得了国家三等奖&#xff08;国赛答辩出了点小插曲&#xff09;。在此分享和记录本次比赛的经验。 目录 一、作品简介二、作品效果图三、设计思路四、项目特色 一、作品简介 本项目实现对农产品近期发展、电商销售、灾…...

工业生产全面感知!工业感知云来了

面向工业企业数字化转型需求&#xff0c;天翼物联基于感知云平台创新能力和5G工业物联数采能力&#xff0c;为客户提供工业感知云服务&#xff0c;包括工业泛协议接入、感知云工业超轻数采平台、工业感知数据治理、工业数据看板四大服务&#xff0c;构建工业感知神经系统新型数…...

Lnton羚通关于Optimization在【PyTorch】中的基础知识

OPTIMIZING MODEL PARAMETERS &#xff08;模型参数优化&#xff09; 现在我们有了模型和数据&#xff0c;是时候通过优化数据上的参数来训练了&#xff0c;验证和测试我们的模型。训练一个模型是一个迭代的过程&#xff0c;在每次迭代中&#xff0c;模型会对输出进行猜测&…...

冒泡排序算法

//version 1 void bubblesort(vector<int>& nums){int n=nums.size();for(int i...

无人机航管应答机 ping200XR

产品概述 ping200XR是一个完整的系统&#xff0c;旨在满足航管应答器和自动相关监视广播(ADS-B)的要求&#xff0c;在管制空域操作无人航空系统(UAS)。该系统完全可配置为模式A&#xff0c;模式C&#xff0c;模式S转发器和扩展ADS-B发射机的任何组合。ping200XR包括一个精度超…...

oracle归档日志满了导致启动不起来解决

oracle启动不起来解决 原因&#xff1a;闪回归档区的空间满了 [oraclepre-oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 22 14:48:50 2023Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to: Oracle Database 11g…...

高等数学:线性代数-第二章

文章目录 第2章 矩阵及其运算2.1 线性方程组和矩阵2.2 矩阵的运算2.3 逆矩阵2.4 Cramer法则 第2章 矩阵及其运算 2.1 线性方程组和矩阵 n \bm{n} n 元线性方程组 设有 n 个未知数 m 个方程的线性方程组 { a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 a 21 x 1 a 22 x 2 ⋯ a …...

星戈瑞分析FITC-PEG-Alkyne的荧光特性和光谱特性

​欢迎来到星戈瑞荧光stargraydye&#xff01;小编带您盘点&#xff1a; FITC-PEG-Alkyne的荧光特性和光谱特性是对其荧光性能进行分析的方面。以下是FITC-PEG-Alkyne的一些常见荧光特性和光谱特性&#xff1a; **1. 荧光激发波长&#xff1a;**FITC-PEG-Alkyne的荧光激发波长通…...

VB.NET调用VB6 Activex EXE实现PowerBasic和FreeBasic的标准DLL调用

VB6写的ActiveX EXE公共对象是外置进程&#xff0c;因此&#xff0c;尽管它是x86 32位的进程&#xff0c;但可以集成到 VB.NET的x64和x32程序中使用。 VS2022的VB.NET程序&#xff0c;调用ActiveX DLL对象我在上篇笔记中写了 VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeB…...

深入了解Unity的Physics类:一份详细的技术指南(七)(下篇)

接着上一篇深入了解Unity的Physics类(上篇)&#xff0c;我们继续把Physics类剩余的属性和方法进行讲解 碰撞检测和忽略: (这些方法和属性涉及查询和处理物体之间的碰撞) Physics.CheckBox: 检查给定位置的盒子是否与任何碰撞器接触或者位于任何碰撞器内部。 Physics.CheckCapsu…...

C++入门:引用是什么

目录 1.引用的概念 2.引用的特征 3.常引用 4.引用使用场景 5.传值&#xff0c;传引用效率比较 6.引用与指针的区别 1.引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用…...

2023年人工智能与自动化控制国际学术会议(AIAC 2023)

2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09; The 2023 International Conference on Artificial Intelligence and Automation Control 2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09;将于2023年10月27-29日在中…...

分布式核心知识以及常见微服务框架

分布式中的远程调用 在微服务架构中&#xff0c;通常存在多个服务之间的远程调用的需求。远程调用通常包含两个部分&#xff1a;序列化和通信协议。常见的序列化协议包括json、xml、 hession、 protobuf、thrift、text、 bytes等&#xff0c;目前主流的远程调用技术有基于HTTP…...

Unity记录4.1-存储-根据关键字加载Tile

文章首发见博客&#xff1a;https://mwhls.top/4810.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议&#xff0c;私信不回。 汇总&#xff1a;Unity 记录 摘要&#xff1a;实现完 Tilemap 地图生成后&#xff0c;实现根据关键字…...

数据结构—树表的查找

7.3树表的查找 ​ 当表插入、删除操作频繁时&#xff0c;为维护表的有序表&#xff0c;需要移动表中很多记录。 ​ 改用动态查找表——几种特殊的树 ​ 表结构在查找过程中动态生成 ​ 对于给定值key ​ 若表中存在&#xff0c;则成功返回&#xff1b; ​ 否则&#xff0…...

微信小程序测试策略和注意事项?

一、测试前准备&#xff08;环境搭建&#xff09; 1、前端页面 微信 Web 开发者工具安装、授权测试用的微信号可预览和调试小程序 2、管理后台 配置内网测试服务器环境&#xff0c;通过 PC 端 Web 站点管理小程序前端的输出内容&#xff0c;可从开发人员获取管理账号进行测…...

VUE3封装EL-ELEMENT-PLUS input组件

VUE3封装EL-ELEMENT-PLUS input组件 完整代码 <template><div><div><div class"lable_top" v-if"label"><label :class"lable_sty">{{ label }}</label></div><el-inputv-model"inputValue&…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...