数据结构-顺序表
目录
基本概念
什么是数据结构?
数据
结构
线性结构
树形结构
网状结构
第一章绪论 了解概念
几个概念
数据存储方式:
算法的五个重要特性:
算法设计的要求:
总结
线性表
线性表的定义:
顺序表的设计思想
定长顺序表
不定长顺序表
编辑
实现顺序表的操作
定长顺序表
不定长顺序表
顺序表总结
基本概念
什么是数据结构?
数据
数据,是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
结构
线性结构
(比如图书目录文件,一对一的关系)
树形结构
(学校架构图,一对多的关系)
网状结构
(交通示意图,多对多的关系)
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的科学。
三种数据结构:
线性结构:线性表(顺序表,链表)(栈,队列)(两种特殊的线性表)
树形结构:二叉树(树都可转成二叉树,二叉树的重要性)
网状结构:图
第一章绪论 了解概念
几个概念
数据元素:是数据的基本单位,在计算机程序通常作为一个整体进行考虑和处理。
数据项:是数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。
数据对象:是性质相同的元素的集合,是数据的一个子集。
数据存储方式:
顺序存储:逻辑相邻,物理也相邻
链式存储:逻辑相邻,物理不一定相邻
算法的五个重要特性:
有穷性,确定性,可行性,输入,输出.
算法设计的要求:
正确性,可读性,健壮性(鲁棒性(Robust,健壮)),效率与低存储量需求.
总结
数据结构的基本含义,简单来说,数据结构就是研究数据(不仅仅是数值的数据)之间的关系以及操作。顾名思义,就是数据的结构,只有你清楚了这些结构如何表现如何处理问题的,你就会发现,数据结构不仅仅拘泥于某一种语言,它更多的是一种思想理念,这样你在实际的编程中你才能运用它,使你的代码更加高效。因为你心中有它,心中有数据结构,那么只要能熟能生巧,你就会自然而然的想到使用它,从而你的代码就会更加高效。
线性表
线性表的定义:
- 存在唯一的一个被称为“第一个”的数据元素;
- 存在唯一的一个被称为“最后一个”的数据元素;
- 除第一个之外,集合中的每一个数据元素都只有一个前驱;
- 除最后一个之外,集合中的每一个数据元素都只有一个后继;
- 线性表是最简单最常用的一种线性表。
- 线性表分为顺序表和链表。
- 顺序表又分为定长顺序表和不定长顺序表。
- 线性表的顺序表,
顺序表的设计思想
定长顺序表
加入length和左端连续。
struct SqLsit
{int elem[10];int length;
}SqList
结构示意图如下:
不定长顺序表
typedef struct DSQList{ int* elem;//动态内存的地址 int length;//有效数据的个数int listsize;//总容量
}DSQList,*DPSQList;
很明显,为了能实现扩容(否则如何实现再次判满呢?),我们必须要在定长顺序表的基础上增加一个总容量;结构示意图如下:
实现顺序表的操作
定长顺序表
.h文件
#pragma once
//预防头文件被重复引用
//定义与声明//定长的顺序表
typedef struct SQList
{int elem[10];//存放数据,固定长度位10int length;//有效数据个数
} SQList, * PSQList;//SQList *==PSQList//初始化
void InitSqlist(PSQList ps);//插入数据,在ps顺序表的pos位置插入val;
bool Insert(PSQList ps, int pos, int val);//判空
bool IsEmpty(PSQList ps);//在ps中查找第一个key值,找到返回下标,没有找到返回-1;
int Search(PSQList ps, int key);//删除pos位置的值
bool DelPos(PSQList ps, int pos);//删除第一个val的值
bool DelVal(PSQList ps, int val);//返回key的前驱下标,如果不存在返回-1;
int GetPrio(PSQList ps, int key);//返回key的后继下标,如果不存在返回-1;
int GetNext(PSQList ps, int key);//输出
void Show(PSQList ps);//清空数据
void Clear(PSQList ps);//销毁整个内存
void Destroy(PSQList ps);
.cpp文件
#include "sqlist.h"
#include <assert.h>
#include <stdio.h>//初始化
void InitSqlist(PSQList ps)
{assert(ps != NULL);if (ps == NULL)return;ps->length = 0;
}static bool isFul(PSQList ps)
{return ps->length == 10;
}//插入数据,在ps顺序表的pos位置插入val;
bool Insert(PSQList ps, int pos, int val)
{assert(ps != NULL);if (ps == NULL)return false;//参数判断if (ps->length < pos || pos < 0 || isFul(ps))return false;for (int i= ps->length; i >= pos; i--){ps->elem[i+1] = ps->elem[i];}ps->length++;ps->elem[pos] = val;return true;
}//判空
bool IsEmpty(PSQList ps)
{return ps->length == 0;
}//在ps中查找第一个key值,找到返回下标,没有找到返回-1;
int Search(PSQList ps, int key)
{for (int i = 0; i < ps->length; i++){if (key == ps->elem[i])return i;}return -1;
}//删除pos位置的值
bool DelPos(PSQList ps, int pos)
{assert(ps != NULL);if (ps == NULL)return false;//参数判断if (ps->length <= pos || pos < 0)return false;for (int i = pos; i < ps->length-1; i++){ps->elem[i] = ps->elem[i + 1];}ps->length--;return true;
}//删除第一个val的值
bool DelVal(PSQList ps, int val)
{int i = Search(ps, val);if (i < 0)return false;return DelPos(ps, i);
}//返回key的前驱下标,如果不存在返回-1;
int GetPrio(PSQList ps, int key)
{int i = Search(ps, key);if (i <= 0)return -1;return i - 1;
}//返回key的后继下标,如果不存在返回-1;
int GetNext(PSQList ps, int key)
{int i = Search(ps, key);if (i < 0 || i == ps->length - 1)return -1;return i + 1;
}//输出
void Show(PSQList ps)
{assert(ps != NULL);if (ps == NULL)return ;for (int i = 0; i < ps->length; i++){printf("%d ", ps->elem[i]);}printf("\n");
}//清空数据
void Clear(PSQList ps)
{ps->length = 0;
}//销毁整个内存(动态内存)
void Destroy(PSQList ps)
{Clear(ps);
}
不定长顺序表
.h文件
#pragma once//可扩容的顺序表
typedef struct DSQList
{int* elem;//动态内存地址int length;//有效数据个数int listsize;//总容量
}DSQList, * DPSQList;//初始化
void InitSqlist(DPSQList ps);//插入数据,在ps顺序表的pos位置插入val;
bool Insert(DPSQList ps, int pos, int val);//判空
bool IsEmpty(DPSQList ps);//在ps中查找第一个key值,找到返回下标,没有找到返回-1;
int Search(DPSQList ps, int key);//删除pos位置的值
bool DelPos(DPSQList ps, int pos);//删除第一个val的值
bool DelVal(DPSQList ps, int val);//返回key的前驱下标,如果不存在返回-1;
int GetPrio(DPSQList ps, int key);//返回key的后继下标,如果不存在返回-1;
int GetNext(DPSQList ps, int key);//输出
void Show(DPSQList ps);//清空数据
void Clear(DPSQList ps);//销毁整个内存
void Destroy(DPSQList ps);
.cpp文件
#include "dsqlist.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>#define INIT_SIZE 100//初始化
void InitSqlist(DPSQList ps)
{assert(ps != NULL);if (ps == NULL)return;ps->elem = (int*)malloc(INIT_SIZE * sizeof(int));ps->length = 0;ps->listsize = INIT_SIZE;
}static bool isFul(DPSQList ps)
{return ps->length == ps->listsize;
}static bool Inc(DPSQList ps)//扩容
{ps->elem = (int*)realloc(ps->elem, ps->listsize * 2 * sizeof(int));assert(ps->elem != NULL);ps->listsize *= 2;return true;
}//插入数据,在ps顺序表的pos位置插入val;
bool Insert(DPSQList ps, int pos, int val)
{assert(ps != NULL);if (ps == NULL)return false;//参数判断if (ps->length < pos || pos < 0)return false;if (isFul(ps)){Inc(ps);}for (int i = ps->length; i >= pos; i--){ps->elem[i + 1] = ps->elem[i];}ps->elem[pos] = val;ps->length++;return true;
}//判空
bool IsEmpty(DPSQList ps)
{return ps->length == 0;
}//在ps中查找第一个key值,找到返回下标,没有找到返回-1;
int Search(DPSQList ps, int key)
{for (int i = 0; i < ps->length; i++){if (key == ps->elem[i])return i;}return -1;
}//删除pos位置的值
bool DelPos(DPSQList ps, int pos)
{assert(ps != NULL);if (ps == NULL)return false;if (pos < 0 || pos >= ps->length)return false;for (int i = pos; i < ps->length - 1; i++){ps->elem[i] = ps->elem[i + 1];}ps->length--;return true;
}//删除第一个val的值
bool DelVal(DPSQList ps, int val)
{int i = Search(ps, val);if(i < 0)return false;return DelPos(ps, i);
}//返回key的前驱下标,如果不存在返回-1;
int GetPrio(DPSQList ps, int key)
{int i = Search(ps, key);if (i <= 0)return -1;return i - 1;
}//返回key的后继下标,如果不存在返回-1;
int GetNext(DPSQList ps, int key)
{int i = Search(ps, key);if (i < 0 || i == ps->length - 1)return -1;return i + 1;
}//输出
void Show(DPSQList ps)
{assert(ps != NULL);if (ps == NULL)return ;for (int i = 0; i < ps->length; i++){printf("%d ", ps->elem[i]);}printf("\n");
}//清空数据
void Clear(DPSQList ps)
{ps->length = 0;
}//销毁整个内存(动态内存)
void Destroy(DPSQList ps)
{//必要free(ps->elem);ps->elem = NULL;//可要ps->length = 0;ps->listsize = 0;
}
顺序表总结
顺序表的特点:
- 插入数据的时间复杂度是O(n),如果是尾插时间复杂度是O(1);
- 删除数据的时间复杂度是O(n),如果是尾删时间复杂度是O(1);
- 通过下标访问数据时间复杂度是O(1);
顺序表逻辑上相邻的元素物理上也相邻,所以插入和删除操作需要移动大量元素; 存储密度大(高),每个结点只存储数据元素(对比链表); 随机访问:顺序表是一种支持随机存取的存储结构,根据起始地址加上元素的序号,可以在O(1)时间内找到指定的元素,这就是随机存取的概念;
相关文章:
数据结构-顺序表
目录 基本概念 什么是数据结构? 数据 结构 线性结构 树形结构 网状结构 第一章绪论 了解概念 几个概念 数据存储方式: 算法的五个重要特性: 算法设计的要求: 总结 线性表 线性表的定义: 顺序表的设计思想 定长顺序表 不定…...
端到端语音识别服务重构方案
以下是重构ASR服务架构,集成Whisper V3Conformer混合模型的端到端实现方案,经过技术增强与流程优化: 端到端语音识别服务重构方案 基于Whisper V3Conformer混合架构 系统架构设计 采用四层微服务架构,支持水平扩展与模块化部署…...
耳根圆通与禅定的交融与分野
引言 在浩瀚的修行体系中,耳根圆通与禅定的关系犹如月映千江——本质同一而显相各异。本文以《楞严经》为经教依据,结合禅宗心法与现代实证视角,系统解析二者在修行原理、实践路径与终极旨归中的深刻关联与微妙差异,揭示这一古老智…...
python基础语法:缩进规则
Python 的缩进规则是其语法的重要组成部分,它通过缩进来表示代码块的层次结构,而不是像其他语言(如 C 或 Java)那样使用大括号 {}。以下是 Python 缩进规则的详细说明: 1. 缩进的基本规则 代码块的标识:Pyt…...
从0到1的Python接口自动化学习路线
Python 是一门非常适合初学者且功能强大的编程语言,它在接口自动化测试领域具有广泛应用。 以下是一份针对 Python 与接口自动化测试的详细学习路线,帮助你从零开始学习并逐步掌握相关知识。 第一阶段:Python基础 目标:掌握 Python 基本语法和编程能力。 一、学习内容 1.…...
大数据(7.3)Kafka量子安全加密实践指南:构建抗量子计算攻击的消息系统
目录 一、量子计算带来的加密革命1.1 量子计算机的威胁时间表1.2 Kafka现有加密机制脆弱性分析 二、后量子加密算法选型2.1 NIST标准化算法矩阵2.2 混合加密最佳实践 三、Kafka量子安全改造方案3.1 Bouncy Castle量子安全Provider3.2 Kafka服务端配置 四、实战案例:…...
【11408学习记录】英语语法精讲:主从复合句之状语从句全解析——以时间状语从句为例
时间 英语语法总结—— 主从复合句状语从句从句位置从句的分类 每日一句词汇第一步:找谓语第二步:断开第三步:简化第一句第二句第三句第四句 英语 语法总结—— 主从复合句 状语从句 状语从句指的是一个句子作状语,表达“描述性…...
深度分页及优化建议
深度分页的定义 深度分页是指在分页查询中,当用户请求非常靠后的页面时,数据库需要处理大量数据,导致查询性能显著下降的情况。例如,一个查询结果有 100 万条记录,而用户要查询第 999 页(每页 10 条记录&a…...
阿里云kafka集成boot在docker启动找不到kafka.client.truststore.jks文件问题
此问题困扰了我好久,看阿里云官方文档,建议配置绝对路径,但项目部署在docker没有绝对路径,开始以为配置在docker的/root下即可,但报找不到文件,后来改相对路径 ./kafka.client.truststore.jks,…/…/还是找…...
kafka 集群搭建,开启sasl认证
Kafka提供了多种认证方式来保护集群的安全性,包括以下几种常见的认证方式: SSL/TLS认证:Kafka支持使用SSL/TLS协议对网络通信进行加密和认证。通过使用SSL/TLS证书对客户端和服务器进行身份验证,可以确保通信的机密性和完整性。SASL/PLAIN认证:SASL/PLAIN是一种基于用户名…...
在 iOS 项目中,Info.plist文件用于配置应用的基本信息和权限
在 iOS 项目中,Info.plist 文件用于配置应用的基本信息和权限。以下是常见的需要添加的权限及其说明: 常见权限及说明 NSCameraUsageDescription 说明: 说明应用为何需要访问相机。示例: “我们需要访问您的相机以便您可以拍摄照片。”NSPhotoLibraryUsageDescription 说明:…...
【完整可用】使用openhtmltopdf生成PDF(带SVG)
文章目录 前言OpenHTMLToPDF 简介maven配置依赖字体文件demo代码其他资源放置截图防止maven编译字体文件 前言 AI和网上都是跑不起来或者版本过低的,还有各种BUG的。本文都是查阅官方文档得出的。如果你能跑起来请给个大大的赞! OpenHTMLToPDF 简介 Ope…...
仿照管理系统布局配置
1.vue仿照snowy 配置,如下图: 2.代码实现 <template><div class"theme-settings"><!-- 导航栏 --><div class"nav-bar"><el-breadcrumb separator"/"><el-breadcrumb-item>导航设置…...
RLAgent note
OpenManus github LlamaGym github GRPO 实践 知乎:Deepseek R1 Zero成功复现 BabyAGI 0,环境 CUDA版本12.X:nvcc -V python 3.10:python -V gcc 11:gcc -V 1,安装llama-cpp-python [git | docs]…...
Python设计模式-工厂模式
一、模式定义与核心思想 工厂模式(Factory Pattern)属于创建型设计模式,其核心思想是通过一个"工厂类"来创建对象,而不是直接调用类的构造函数。这种模式将对象的实例化过程封装起来,使系统在实例化对象时能…...
Vue环境搭建:vue+idea
目录 第一章、Vue环境搭建:安装node2.1)node的下载2.2)配置node的环境变量2.3)常见的npm命令 第二章、使用idea创建vue工程2.1)在IDEA中设置国内镜像2.2)在IDEA中进行脚手架安装2.3)在IDEA中创建…...
庙算兵推:使用Streamlit框架构建了一个智能作战推演系统。
这段代码是一个完整的军事模拟应用,使用Streamlit框架构建了一个智能作战推演系统。该系统包括了三维地图显示、作战单位管理、应急事件处理等功能。用户可以通过界面控制推演的开始和暂停,调整时间加速倍率,并查看实时的战斗情况和系统状态。…...
APIGen-MT:高效生成多轮人机交互Agent数据的两阶段框架
APIGen-MT:高效生成多轮人机交互数据的两阶段框架 引言 随着人工智能技术的飞速发展,AI代理(Agent)已从简单的聊天机器人发展为能够执行复杂现实任务的系统,例如管理金融交易、安排预约和处理客户服务等。然而&#x…...
02-redis-数据结构实现原理
1、redis整体涉及的结构 在redis中整体是KV键值对的方式进行访问的,redis的查询的时间复杂度O(1),底层的数据结构其实跟java中的HashMap底层实现类似,整体采用的是数组链表的实现方式,哈希冲突的时候使用的是链表法解决࿱…...
京华幻梦:科技自然共生诗篇
故事摘要 故事发生在现代中国北京,展现了未来城市的奇幻景象与科技变革。在这个充满想象的未来世界里,科技与自然不再对立,而是达成了和谐共生的美妙平衡。故宫、鸟巢、798艺术区等标志性地点,在科技的赋能下焕发新的生机&#x…...
python:面向对象之包
1.包的定义: 包就是把有联系的模块组织在一起,即放在同一文件夹下,并且在这个文件夹下创建一个__init__.py文件,这个文件就叫做包。 2.包的创建: 创建好好会自动生成一个__init__.py文件。 3.包的调用: …...
spring boot整合redis
spring boot整合redis 步骤: ① 引入redis依赖 <dependency><groupId>org.springframework.boot</group><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>②在application.yml配置文件中,…...
DIA——边缘检测
1.边缘 边缘是像素的突变位置。 2.常见边缘检测算法 通过找到一阶导数的极值点或者二阶导数的过零点来确定边缘像素的位置。边缘检测通常使用算子,即特定的卷积核。通过差分对离散的像素点求导,然后转化成卷积核进行卷积。使用卷积统一涵盖求导&…...
redis 免安装版本 启动方法 windows 安装包
redis 免安装版本 启动方法 windows 安装包 下载解压直接使用 百度网盘连接如下 链接:https://pan.baidu.com/s/1W4ICvdUUxkWPhK93GtdG0Q 提取码:vzw3 下载解压后会用32位和64位两种,根据自己的电脑选择 cmd命令 cd /d D:\yaochengwei\so…...
C语言练习二 进制转换
#include <stdio.h>// 强制类型转换int main(){int i 5;float j i / 2; // 只是把整形先除了 再赋值float k (float)i / 2; //先强制改成float 再赋值printf("%f\n",j);printf("%f\n",k);return 0; } #include <stdio.h> int main(){int…...
AlDente Pro for Mac电脑 充电限制保护工具
AlDente Pro for Mac电脑 充电限制保护工具 一、介绍 AlDente Pro for Mac,是一款充电限制保护工具,是可以限制最大充电百分比来保护电池的工具。锂离子和聚合物电池(如 MacBook 中的电池)在40% 至 80% 之…...
物联网卡(NB-IoT/4G)技术详解
物联网卡(IoT SIM卡)是专为物联网设备设计的流量卡,支持NB-IoT、4G Cat.1等低功耗广域网络(LPWAN),广泛应用于智能烟感、共享设备、车联网等领域。以下是NB-IoT和4G物联网卡的对比与选型指南。 1. NB-IoT v…...
HTML5 Video (视频) 深入解析
一、引言 在当今的互联网时代,视频已经成为网站内容中不可或缺的一部分。从产品介绍、教程演示到娱乐内容,视频以其生动直观的特点吸引着大量用户。HTML5 的出现,为在网页上展示视频提供了一个标准且强大的解决方案,改变了过去依赖插件(如 Flash)来显示视频的局面。 二…...
NO.87十六届蓝桥杯备战|动态规划-完全背包|疯狂的采药|Buying Hay|纪念品(C++)
完全背包 先解决第⼀问 状态表⽰: dp[i][j]表⽰:从前i个物品中挑选,总体积不超过j,所有的选法中,能挑选出来的最⼤价 值。(这⾥是和01背包⼀样哒) 那我们的最终结果就是dp[n][V] 。状态转移⽅…...
Win11企业版安装wsl遇到的坑
起因是windows11上安装了docker desktop,但是启动以后显示Docker Engine stopped,一顿搜索。 可以参考:windows 11系统下打开docker 提示 docker engine stopped - DbWong_0918 - 博客园 我这边主要是检查了第2点,开启windows h…...
C++手撕单链表及逆序打印
在学习数据结构的过程中,链表是一个非常重要的基础数据结构。今天,我们将通过C手动实现一个单链表,并添加一个逆序打印的功能,帮助大家更好地理解链表的实现和操作。 一、链表简介 链表是一种线性数据结构,其中每个元…...
Kubernetes外部etcd集群的快速Docker Compose 部署
一、背景 在高可用 Kubernetes 部署中,需要单独部署外部 etcd 集群,而不是使用 kubeadm 默认在 master 节点上部署的 etcd。以下是关于这一配置场景的详细记录。 二、etcd简介 etcd 是一个高可用的分布式键值存储系统,主要用于存储和管理配…...
docker的目录挂载与卷映射
文章目录 一、目录挂载背景定义使用 二、卷映射背景定义区别使用docker对卷的操作 一、目录挂载 背景 上一文,我们提了docker exec进入容器修改页面很麻烦,所以在这里,我们学习一个新的容器使用方法,叫“目录挂载” 定义 长话…...
十三种物联网/通信模块综合对比——《数据手册--物联网/通信模块》
物联网/通信模块 名称 功能 应用场景 USB转换模块 用于将USB接口转换为其他类型的接口,如串口、并口等,实现不同设备之间的通信。 常用于计算机与外部设备(如打印机、扫描仪等)的连接,以及数据传输和设…...
IntelliJ IDEA 中安装和使用通义灵码 AI 编程助手教程
随着人工智能技术的发展,AI 编程助手逐渐成为提升开发效率的强大工具。通义灵码是阿里云推出的一款 AI 编程助手,它能够帮助开发者实现智能代码补全、代码解释、生成单元测试等功能,极大地提升了编程效率和代码质量。 IntelliJ IDEA 是一款广…...
工业 IOT 平台重塑锂电龙头数字化未来
在 “双碳” 目标驱动下,新能源锂电池产业正经历前所未有的扩张期。作为全球原材料领域的龙头企业,某锂电巨头在国内布局的多个生产基地却陷入 “成长的烦恼”:车间里工人忙着手工录入数据,设备运行状态靠纸质报表传递,…...
蓝牙连接hci 命令和事件的交互
参考:在HCI层看蓝牙的连接过程_hci 获取蓝牙pin码-CSDN博客 我这边查看的是core 5.2 一、数据交互流程 1、ACL连接建立后的可选流程 参考蓝牙core5.2: vol2 --> PartF --> 4 1.1 AUTHENTICATION REQUESTED Authentication can be explicitly executed at …...
Maven超级详细安装部署
1.到底什么是Maven?搞清楚这个 Maven 是一个项目管理工具,主要用于 Java 项目的构建、依赖管理和文档生成。 它基于项目对象模型(POM),通过 pom.xml 文件定义项目的配置。 (简单说破:就是工程…...
OSPF不规则区域和LSA
OSPF不规则区域 1.远离骨干的非骨干区域 R1-R4四台路由器能够正常学习到彼此路由,但是R5不行,因为R5是非法ABR 解决方法: 1使用Tunnel隧道将AR4连接到骨干区域 (1) 使用隧道解决不规则区域的问题 a.可能造成选路不…...
深入了解 UI 咨询公司:数字化时代的品牌助推器
在数字化浪潮席卷全球的当下,用户界面(UI)设计已然成为企业在激烈市场竞争中脱颖而出的关键因素。UI 咨询公司应运而生,凭借其专业的知识与技能,为企业的数字化转型和品牌建设提供强大助力。 UI 咨询公司的重要性 提…...
网络建设与运维神州数码DCN sFlow网络流量信息协议
简介 用于监控网络流量信息的协议。 主要操作:由被监视的交换机,路由器把被监控的数据通过采样,统计等操作发送到用于监控的用户端分析器,由分析器对收到的数据进行用户所要求的分析,从而达到监控网络的目的。 各 sFlo…...
NO.88十六届蓝桥杯备战|动态规划-多重背包|摆花(C++)
多重背包 多重背包问题有两种解法: 按照背包问题的常规分析⽅式,仿照完全背包,第三维枚举使⽤的个数;利⽤⼆进制可以表⽰⼀定范围内整数的性质,转化成01 背包问题。 ⼩建议:并不是所有的多重背包问题都能…...
vue2添加背景水印-手动实现(无组件模式)
1. App.vue <template><div id"app" class"app"><router-view></router-view></div> </template><script> export default {mounted() {this.updateWatermark();// 监听路由变化this.$router.afterEach(() >…...
华为数通Datacom认证考试难度怎么样?
华为数通Datatcom认证是华为针对数据通信领域推出的技术认证体系,分为HCIA(初级)、HCIP(中级)、HCIE(专家级)三个等级,考试难度逐级递增,对考生的理论知识和实践能力…...
一文读懂WPF系列之常用控件以及样式
WPF控件 控件分类概览常用控件常用控件代码示例和效果 样式与模板应用样式定义方式行内样式页面/窗口级资源样式(Local Resource)应用程序全局资源独立资源字典(ResourceDictionary)控件模板(ControlTemplate&…...
代码随想录算法训练营第十四天
LeetCode题目: 513. 找树左下角的值112. 路径总和106. 从中序与后序遍历序列构造二叉树 其他: 今日总结 往期打卡 513. 找树左下角的值 跳转: 513. 找树左下角的值 学习: 代码随想录公开讲解 问题: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边…...
国产信创数据库:PolarDB 分布式版 V2.0,支持集中分布式一体化
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。点此查看详情https://www.aliyun.com/activity/database/polardbx-v2?spma2c6h.13046898.publish-article.8.44146ffaE0lEWT 立即咨询专家…...
【教学类-102-07】剪纸图案全套代码07——Python点状虚线优化版本+制作1图2图6图
背景需求: 我觉得这个代码里面的输入信息分离太远(42行和241行),想重新优化一下 【教学类-102-05】蛋糕剪纸图案(留白边、沿线剪)04——Python白色(255)图片转为透明png再制作“点状边框和虚线边框”-CSDN博客文章浏览阅读864次,点赞14次,收藏27次。【教学类-102-0…...
基于VSCode的Qt开发‘#include ui_test.h’报错没有该文件
笔者在基于VSCode进行Qt开发时,test.ui文件是在Qt软件中绘制的,导致本项目无法使用这个ui文件,报错如标题。事实上,本工程中也确实没有生成这个头文件。出现这个错误的原因是ui文件没有被编译为c头文件。 要生成 ui_test.h 文件&…...
微信小程序跳2
// 图片压缩 compressImage (image {}, options {}) { return new Promise((resolve, reject) > { const { width 0 } image const { compressAfterSizeFlag false, scaleFlag false, scaleTargetWidth 768 } options // 超过100k压缩 const maxFileSizeLimit 100 …...