数据结构 day02
3. 线性表
3.1. 顺序表
3.1.3. 顺序表编程实现
操作:增删改查
.h 文件
#ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表数组中最后一个有效元素的下标 } seqlist_t;//1.创建一个空的顺序表 seqlist_t *CreateEpSeqlist(); //2.向顺序表的指定位置插入数据 int InsertIntoSeqlist(seqlist_t *p, int post, int data); //3.遍历顺序表 void ShowSeqlist(seqlist_t *p); //4.判断顺序表是否为满,满返回1,未满返回0 int IsFullSeqlist(seqlist_t *p); //5.判断顺序表是否为空 int IsEpSeqlist(seqlist_t *p); //6.删除顺序表中指定位置的数据 int DeleteIntoSeqlist(seqlist_t *p, int post); //7.清空顺序表 (清空:访问不到,但是内存中还有;销毁:内存清空) void ClearSeqList(seqlist_t *p); //8.修改指定位置的数据,post为被修改数据位置,data为修改成的数据 int ChangePostSeqList(seqlist_t *p,int post,int data); //9.查找指定数据出现位置,data为被查找的数据,返回下标,未找到返回-1 int SearchDataSeqList(seqlist_t *p,int data); #endif
1.创建一个空的顺序表
#include <stdio.h> #include "seqlist.h" #include <stdlib.h>// 1.创建一个空的顺序表 seqlist_t *CreateEpSeqlist() {// 1. 动态申请一块空间存放顺序表seqlist_t *p = NULL;p = (seqlist_t *)malloc(sizeof(seqlist_t));// 2. 检测空间是否开辟成功if (NULL == p){perror("malloc last!");return NULL;}else{// 空间开辟成功,对last初始化printf("malloc success!\n");p->last = -1;return p;} }
2.向顺序表的指定位置插入数据
#include <stdio.h> #include "seqlist.h"// 2.向顺序表的指定位置插入数据 int InsertIntoSeqlist(seqlist_t *p, int post, int data) {// post容错,post范围,顺序表满了if (post > p->last + 1 || post < 0 || IsFullSeqlist(p)){perror("Insert Failed");return -1;}// 从post开始,到last,中间的元素向后移动一位for (int i = p->last; i >=post; i--){p->data[i+1] = p->data[i];}p->data[post] = data;p->last++;return 0; }
3.遍历顺序表
#include <stdio.h> #include "seqlist.h"//3.遍历顺序表 void ShowSeqlist(seqlist_t *p) {for (int i = 0; i <= p->last; i++)printf("%-4d", p->data[i]);printf("\n"); }
4. 判断顺序表是否为满
#include <stdio.h> #include "seqlist.h"// 4.判断顺序表是否为满,满返回1,未满返回0 int IsFullSeqlist(seqlist_t *p) {// if (p->last + 1 == N)// return 1;// else// return 0;return p->last +1 == N; }
5. 判断顺序表是否为空
#include <stdio.h> #include "seqlist.h"// 5.判断顺序表是否为空 int IsEpSeqlist(seqlist_t *p) {return p->last == -1; }
6. 删除顺序表中指定位置的数据
#include <stdio.h> #include "seqlist.h"// 6.删除顺序表中制定位置的数据 int DeleteIntoSeqlist(seqlist_t *p, int post) {// 容错判断if (IsEpSeqlist(p) || post < 0 || post > p->last){perror("Delete Failed!");return -1;}// 从下标为post+1 到last的元素向前移动一个单位for (int i = post + 1; i <= p->last; i++)p->data[i - 1] = p->data[i];p->last--;return 0; }
7. 清空顺序表
#include <stdio.h> #include "seqlist.h"// 7.清空顺序表 (清空:访问不到,但是内存中还有;销毁:内存清空) void ClearSeqList(seqlist_t *p) {p->last = -1; }
8. 修改指定位置的数据
#include <stdio.h> #include "seqlist.h"// 8.修改指定位置的数据,post为被修改数据位置,data为修改成的数据 int ChangePostSeqList(seqlist_t *p, int post, int data) {// 容错判断if (post < 0 || post > p->last || IsEpSeqlist(p)){perror("Change Failed!");return -1;}// 修改指定位置的数据p->data[post] = data;return 0; }
9. 查找指定数据出现位置
#include <stdio.h> #include "seqlist.h"// 9.查找制定数据出现位置,data为被查找的数据,返回下标,未找到返回-1 int SearchDataSeqList(seqlist_t *p, int data) {for (int i = 0; i <= p->last; i++)if (p->data[i] == data)return i;return -1; }
main.c
#include <stdio.h> #include "seqlist.h" #include <stdlib.h>int main(int argc, char const *argv[]) {// 创建空顺序表seqlist_t *p = NULL;p = CreateEpSeqlist();// 插入数据InsertIntoSeqlist(p, 0, 1);InsertIntoSeqlist(p, 1, 2);InsertIntoSeqlist(p, 2, 3);InsertIntoSeqlist(p, 3, 4);InsertIntoSeqlist(p, 4, 5);// 遍历顺序表ShowSeqlist(p);// 删除指定位置的数据DeleteIntoSeqlist(p, 2);ShowSeqlist(p);// 修改指定位置的数据ChangePostSeqList(p, 1, 999);ShowSeqlist(p);// 查找指定数据的位置printf("post = %d\n", SearchDataSeqList(p, 4));// 清空顺序表ClearSeqList(p);printf("%d\n",IsEpSeqlist(p));// 释放空间free(p);return 0; }
3.2. 链表 Link
链表又叫单链表,链式存储结构,用于存储逻辑关系为 “ 一对一 ” 的数据。每个元素配有指针域,存储和访问时通过指针域指向下一个节点的地址。
3.2.1. 链表的特性
逻辑结构:线性结构
存储结构:链式存储
特点:内存可以不连续
解决问题:长度固定,插入和删除操作繁琐
操作:增删改查
struct node_t
{int data; // 数据域struct node_t next; // 指针域,存放下一个节点的地址
};
3.2.2. 单向链表
1)有头单向链表
第一位数据域无效,无法存储数据
2)无头单向链表
第一位数据域有效
单向链表的基本操作
1. 定义结构体数组,作为链表的一个节点
typedef struct Link_list {int data;struct Link_list *next; }link_node_t, *link_list_t;
2. 定义链表节点
link_node_t A = {'a', NULL};link_node_t B = {'b', NULL};link_node_t C = {'c', NULL};link_node_t D = {'d', NULL};
3. 定义头指针
无头
link_list_t h = &A;
有头 定义头节点,让头指针指向头节点
link_node_t S = {'\0', &A}; link_list_t h = &S;
4. 遍历链表
无头
while (h != NULL){printf("%-4c", h->data);h = h->next;}printf("\n");
有头
按照有头节点方式遍历
while (h->next != NULL) {h = h->next;printf("%-4c", h->data); }
按照无头节点方式遍历
h = h->next; while(h != NULL) {printf("%-4c", h->data);h = h->next; }
有头单向链表的函数操作
头文件 .h
#ifndef __LINKLIST_H__ #define __LINKLIST_H__typedef int datatype; typedef struct node_t {datatype data; // 数据域struct node_t *next; // 指针域,指向自身结构体的指针 } link_node_t, *link_list_t;// 1.创建一个空的有头单向链表 link_list_t createEmptyLinkList(); // 2.链表指定位置插入数据 int insertIntoPostLinkList(link_node_t *p, int post, datatype data); // 3.计算链表的长度。 int lengthLinkList(link_node_t *p); // 4.遍历链表 void showLinkList(link_node_t *p); // 5.链表指定位置删除数据 int deletePostLinkList(link_node_t *p, int post); // 6.判断链表是否为空 int isEmptyLinkList(link_node_t *p); // 7.清空单向链表 void clearLinkList(link_node_t *p); // 8.修改指定位置的数据 post 被修改的位置 data修改成的数据 int changePostLinkList(link_node_t *p, int post, datatype data); // 9.查找指定数据出现的位置 data被查找的数据 //search 查找 int searchDataLinkList(link_node_t *p, datatype data); // 10.删除单向链表中出现的指定数据,data代表将单向链表中出现的所有data数据删除 int deleteDataLinkList(link_node_t *p, datatype data); // 11.转置链表 // 解题思想: //(1) 将头节点与当前链表断开,断开前保存下头节点的下一个节点, // 保证后面链表能找得到,定义一个q保存头节点的下一个节点, // 断开后前面相当于一个空的链表,后面是一个无头的单向链表 //(2) 遍历无头链表的所有节点, // 将每一个节点当做新节点插入空链表头节点的下一个节点 // (每次插入的头节点的下一个节点位置) void reverseLinkList(link_node_t *p); #endif
1. 创建一个空的有头单项链表
link_node_t *createEmptyLinkList() {link_list_t h = (link_list_t)malloc(sizeof(link_node_t));// 容错判断if (h == NULL){perror("空间开辟失败\n");return NULL;}// 头节点初始化h->next=NULL;return h; }
2. 链表指定位置插入节点
int insertIntoPostLinkList(link_node_t *p, int post, datatype data) {link_list_t pnew = NULL; // 指向新节点// 容错判断if(post > lengthLinkList(p) || post < 0){perror("post 范围错误");return -1;}// 创建新节点并初始化pnew = (link_list_t)malloc(sizeof(link_node_t));pnew->data = data;pnew ->next = NULL;// 移动头指针,指向插入位置的前一个节点for(int i = 0; i < post; i++){p = p->next;}// 链接插入节点pnew->next = p->next;p ->next = pnew;return 0; }
3. 计算链表长度
int lengthLinkList(link_node_t *p) {int len = 0;while (p->next != NULL){p = p->next;len++;}return len; }
4. 遍历链表
void showLinkList(link_node_t *p) {while (p->next != NULL){p = p->next;printf("%-4d", p->data);} }
相关文章:
数据结构 day02
3. 线性表 3.1. 顺序表 3.1.3. 顺序表编程实现 操作:增删改查 .h 文件 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表数组中最后一个有效元素的下标 } seqlist_t;//1.创建一个空的顺序表 seq…...
前端里的this指向问题
目录 1.代码输出结果 2.代码输出结果 3.代码输出结果 4.代码输出结果 5.代码输出结果 6.代码输出结果 7.代码输出结果 8.代码输出结果 9.代码输出结果 10.代码输出结果 11.代码输出结果 12.代码输出结果 13.代码输出结果 14.代码输出结果 总结 1.代码输出结果 f…...
pandas(11 分类数据和数据可视化)
前面内容:pandas(10 日期和Timedelta) 目录 一、Python Pandas 分类数据 1.1 pd.Categorical() 1.2 describe() 1.3 获取类别的属性 1.4 分类操作 1.5 分类数据的比较 二、Python Pandas 数据可视化 2.1 基础绘图:plot 2.2 条形图 2.3 直方…...
cmake Qt Mingw windows构建
今天教大家怎么在windows构建qt应用使用cmd命令行,而不是一键通过QtCreator一键构建。首先我们用qtcreator创建一个模板程序(PS:记得在安装qt时要悬着mingw套件,如果安装太慢可以换源) 输入以下的命令: mkdir build …...
缓存穿透、缓存击穿、缓存雪崩的区别与解决方案
1. 缓存穿透(Cache Penetration) 定义:大量请求查询 数据库中不存在的数据,导致请求绕过缓存直接访问数据库,造成数据库压力过大。 场景: 恶意攻击:例如用不存在的用户ID频繁请求。 业务误操作…...
【Rust中级教程】1.6. 内存 Pt.4:静态(static)内存与‘static生命周期标注
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 1.6.1. 静态(static)内存 static内存实际上是一个统称,它指的是程序编译后的文…...
Python爬虫实战:股票分时数据抓取与存储 (1)
在金融数据分析中,股票分时数据是投资者和分析师的重要资源。它能够帮助我们了解股票在交易日内的价格波动情况,从而为交易决策提供依据。然而,获取这些数据往往需要借助专业的金融数据平台,其成本较高。幸运的是,通过…...
HTML之JavaScript对象
HTML之JavaScript对象 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…...
【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】
凌晨三点的ICU病房,AI辅助诊断系统将一位患者的肺炎误判为普通感冒——当主治医生要求查看诊断依据时,系统只能给出冷冰冰的概率数值。这场惊心动魄的误诊事件,掀开了深度学习可解释性危机的冰山一角。 一、模型透明的"第一性原理" 1.1 可解释性的三维度量 ![可…...
SOCKET建立简单的tcp服务端与客户端通信
socket是什么 socket可以使两台机子建立连接,就像连接风扇与电源的插座一样,socket可以使服务端与客户端建立连接,服务端就像供电厂,而客户端就像用电器,而socket就是连接二者的插座。 建立简单的连接 如果我们想在客…...
最新智能优化算法: 阿尔法进化(Alpha Evolution,AE)算法求解23个经典函数测试集,MATLAB代码
一、阿尔法进化算法 阿尔法进化(Alpha Evolution,AE)算法是2024年提出的一种新型进化算法,其核心在于通过自适应基向量和随机步长的设计来更新解,从而提高算法的性能。以下是AE算法的主要步骤和特点: 主…...
HTML之JavaScript常见事件
HTML之JavaScript常见事件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&…...
《云原生安全攻防》-- K8s镜像安全:镜像全生命周期安全管理
从攻击者的角度来看,针对容器镜像的软件供应链攻击和镜像投毒等攻击方式,不仅攻击成本低,而且还能带来更高且持久的收益。因此,镜像安全问题变得日益突出。 在本节课程中,我们将深入探讨镜像全生命周期的安全管理&…...
【Copilot】Redis SCAN SSCAN
目录 SCAN 命令SSCAN 命令使用示例原理Redis SCAN 和 SSCAN 命令的注意事项及风险注意事项风险 以下内容均由Github Copilot生成。 SCAN 和 SSCAN 命令是 Redis 提供的用于增量迭代遍历键或集合元素的命令。它们的主要优点是可以避免一次性返回大量数据,从而减少对 …...
【含开题报告+文档+PPT+源码】基于Spring+Vue的拾光印记婚纱影楼管理系统
开题报告 本论文旨在探讨基于Spring和Vue框架的拾光印记婚纱影楼管理系统的设计与实现。该系统集成了用户注册登录、个人资料修改、婚庆资讯浏览、婚庆套餐查看、婚纱拍摄预约、婚纱浏览与租赁、客片查看以及在线客服等多项功能,为用户提供了一站式的婚纱影楼服务体…...
静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片
这个问题可能有几个原因导致,我来分析一下并给出解决方案: 首要问题是懒加载实现方式的兼容性问题。当前的懒加载实现可能在 iOS 上不够稳定。建议修改图片懒加载的实现方式: // 使用 Intersection Observer API 实现懒加载 function initLazyLoading() {const imageObserver…...
【Qt】QObject类的主要功能
在 Qt 中,QObject 类是所有 Qt 对象的基类,提供了许多基础功能,使得 Qt 的对象系统能够有效地工作。它为其他类提供了核心的机制,比如信号和槽机制、对象树结构、内存管理等。 QObject 类的主要功能: 信号和槽机制&am…...
第 16 天:游戏 UI(UMG)开发,打造主菜单 血条!
🎯 目标 ✅ 使用 UMG 创建 UI 并在游戏中显示 ✅ 实现血条(HP Bar)系统,动态显示角色生命值 ✅ 创建主菜单 UI,并添加开始/退出按钮 ✅ 保存当前场景,创建新场景作为主菜单 ✅ 点击 StartGameButton 后&am…...
兔兔答题应用于微信考试、付费考试、社会调查问卷、明星知识问答、员工培训考核、模拟自测、企业面试、试题库等多种场景。
“兔兔答题系统”是一个面向教育、培训和在线测评场景的智能化答题平台(兔兔答题官网地址)。其设计目标是帮助用户高效完成题目练习、考试组织及学习效果分析,通常具备以下核心功能和特色: 一、核心功能 题库管理 支持多题型录入&…...
【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)
背景需求: 做了中班的四类活动安排表,我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次࿰…...
19.4.6 读写数据库中的二进制数据
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 需要北风数据库的请留言自己的信箱。 北风数据库中,类别表的图片字段在【数据表视图】中显示为Bitmap Image࿱…...
使用 Python 爬虫获取微店快递费用 item_fee API 接口数据
在电商运营中,快递费用是影响商家利润和用户体验的重要因素之一。微店作为国内知名的电商平台,提供了丰富的 API 接口供开发者使用,其中也包括查询商品快递费用的接口。通过调用微店的 item_fee 接口,开发者可以获取指定商品的快递…...
蓝桥杯篇---温度传感器 DS18B20
文章目录 前言DS18B201. DS18B20 引脚说明2. 单总线通信协议3. DS18B20 操作流程初始化写操作读操作 4. 示例代码5. 代码说明6. 注意事项总结 前言 本文简单介绍了IAP15F2K61S2中温度传感器模块DS18B20的使用。 DS18B20 DS18B20 是一款数字温度传感器,采用单总线&…...
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证 1.NAC简介2.802.1X认证3. MAC认证4. Portal认证 1.NAC简介 NAC(Network Access Control)称为网络接入控制,通过对接入网络的客户端和用户的认证保证网络的安全,是一…...
字节Trae使用感想(后端)
前言 昨天分享了字节哥的Trae从0到1创作模式构建一个vue前端项目,今天又来试试她的后端项目能力。不是我舔,不得不说确实不错。可惜现在曾经没有好好学习,进不了字节。既然进不了字节,那我就用字节哥的产品吧。 后面有惊喜…...
蓝桥杯 Java B 组之简单动态规划(爬楼梯、斐波那契数列)
Day 6:简单动态规划(爬楼梯、斐波那契数列) 动态规划(Dynamic Programming,简称 DP)是计算机科学中的一种算法设计思想,用来解决最优解问题,它的核心思想是将大问题分解为小问题&am…...
传统 I/O 和 NIO 的主要区别
在 Java 中,文件读写可以通过传统的 I/O 方式(如 InputStream 和 OutputStream)或 NIO(New I/O)方式(如 FileChannel)来实现。NIO 的 FileChannel 提供了更高效的文件操作方式,尤其是…...
0基础学LabVIEW
对于零基础的朋友来说,学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础,再结合实际项目进行实践操作,能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 一、利用B站入门教程打基础 筛选优质教程…...
二〇二四年终总结
写在前面 简单总结一下告诉自己,曾经活着 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结,但是一直拖着&…...
设计模式:状态模式
状态机有3个要素:状态,事件,动作。 假如一个对象有3个状态:S1、S2、S3。影响状态的事件有3个:E1、E2、E3。每个状态下收到对应事件的时候,对象的动作为AXY。那么该对象的状态机就可以用如下表格来表示。S1收到事件E1的…...
SQLite Select 语句详解
SQLite Select 语句详解 SQLite 是一个轻量级的数据库管理系统,以其简洁的设计和高效的性能被广泛应用于各种场景。在 SQLite 中,SELECT 语句是用于查询数据库中的数据的命令。本文将详细介绍 SQLite 的 SELECT 语句,包括其基本语法、常用功…...
【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法
1.什么是 Faster R-CNN? Faster R-CNN(Region-based Convolutional Neural Network) 是 目标检测(Object Detection) 领域的一种 双阶段(Two-Stage) 深度学习方法,由 Ross Girshick…...
静默安装OGG for MySQL微服务版本,高效开展数据同步和迁移
一、背景 本文从Oracle GoldenGate微服务版的概念和组件介绍开始,从零介绍了怎么开始安装GoldenGate 21c for Oracle微服务版本的软件及部署。当然了,微服务版除新功能外包含传统版所有的功能。 二、安装部署 (一)下载OGG for …...
排序算法衍生问题
排序算法衍生问题 引言 排序算法是计算机科学中的基本问题之一,广泛应用于各种实际场景中。尽管有多种排序算法可供选择,但每种算法都有其特定的优势和局限性。本文将探讨排序算法中的一些衍生问题,包括算法效率、稳定性、内存占用等方面&a…...
DeepSeek自动化写作软件
DeepSeek写作软件的三大核心功能 对于内容创作者来说,写作不仅是表达思想的过程,更是一项需要投入大量时间和精力的任务。面对日益增长的内容需求,写作效率低下、内容质量不高等问题,常常让创作者感到焦虑。而 DeepSeek 写作软件…...
Python数据可视化 - Matplotlib教程
文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…...
集成测试总结文档
1. 集成测试的定义 集成测试(Integration Testing)是在单元测试之后,将多个独立的软件模块或组件组合在一起进行测试的过程,目的是验证这些模块之间的接口、数据传递、协作逻辑是否符合设计要求,并发现因集成引发的缺…...
Retrieval-Augmented Generation for LargeLanguage Models: A Survey
标题:Retrieval-Augmented Generation for Large Language Models: A Survey 作者:Yunfan Gaoa , Yun Xiongb , Xinyu Gaob , Kangxiang Jiab , Jinliu Panb , Yuxi Bic , Yi Daia , Jiawei Suna , Meng Wangc , and Haofen Wang 1. By referencing ext…...
Day3 25/2/16 SUN
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...
使用maven-archetype制作项目脚手架
使用maven-archetype制作项目脚手架 maven plugin依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.0.1</version> </plugin>导出模板 在模板项目执行…...
Spring AOP源码解析
前言 Spring AOP(面向切面编程)是 Spring 框架的核心模块之一,其底层通过 动态代理 和 字节码增强 实现。以下是 Spring AOP 的源码解析,涵盖核心流程、关键类及实际应用场。 一、Spring AOP 的核心组件 核心接口 Joinpoint&am…...
1.buuctf [BJDCTF2020]EasySearch
进入题目页面如下 尝试输入弱口令密码都显示错误 看题目是search,扫描一下根目录试试 /index.php.swp 得到源码 进行一下代码审计 <?php//开启输出缓冲,将所有的输出内容先保存到缓冲区,而不是直接输出到浏览器。ob_start();//定义一个…...
小米 R3G 路由器刷机教程(Pandavan)
小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…...
【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析③】
ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase03 作者:车端域控测试工程师 更新日期:2025年02月15日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-003测试用例 用例ID测试场景验证要点参考条款预期…...
deepseek与gpt,核心原理对比
DeepSeek与GPT作为AI大模型,在自然语言处理等领域展现出强大的能力,它们的核心原理对比主要体现在模型架构、训练策略、资源效率以及应用场景优化等方面。 一、模型架构 DeepSeek 混合专家(MoE)框架:DeepSeek采用了混合专家框架,其内部包含多个“专家”子模块,每个子模…...
第1章大型互联网公司的基础架构——1.1 单机房的内部架构
所谓的应用后台就是指机房。机房架构是一个庞大的工程,你可能听说过很多大型互联网公司曾在各种技术峰会上介绍它们的“三地五中心”多机房,甚至是全球异地多活机房等,这些“高大上”的话题讨论的都是机房架构的内容。机房最简单的形式是单机…...
如何在 Vue 3 中使用 Vue Router 和 Vuex
在 Vue 3 中使用 Vue Router 1. 安装 Vue Router 在项目根目录下,通过 npm 或 yarn 安装 Vue Router 4(适用于 Vue 3): npm install vue-router4 # 或者使用 yarn yarn add vue-router42. 创建路由配置文件 在 src 目录下创建…...
网络安全月度报告
3.1.1网络现状及安全挑战 网络的出现给人们的工作和生活带来了极大的便利,但同时也带来了极大的安全风险。在信息传输和交换时,需要对通信信道上传输的机密数据进行加密;在数据存储和共享时,需要对数据库进行安全的访问控制和对访…...
人大金仓国产数据库与PostgreSQL
一、简介 在前面项目中,我们使用若依前后端分离整合人大金仓,在后续开发过程中,我们经常因为各种”不适配“问题,但可以感觉得到大部分问题,将人大金仓视为postgreSQL就能去解决大部分问题。据了解,Kingba…...
Python的imutils库详细介绍
imutils 是一个专为简化OpenCV(计算机视觉库)常见操作而设计的Python工具库,提供了一系列便捷函数,使图像和视频处理更加高效和简洁。以下是对其功能、安装及用法的详细介绍: 1. 安装方法 通过pip安装: p…...