数据结构:顺序表(Sequence List)及其实现
什么是顺序表?
顺序表是一种最简单的数据结构,它就像一排连续的小房子,每个房子里都住着一个数据元素。这些房子是按顺序排列的,每个房子都有一个门牌号(下标),我们可以通过门牌号快速找到对应的数据。
顺序表的核心特点是:数据在内存中是连续存储的。正因为数据是连续的,所以我们可以通过下标快速访问任意位置的元素。
顺序表的原理
顺序表的底层通常是用数组实现的。数组是一块连续的内存空间,每个元素都紧挨着存储。比如,我们定义一个数组 int arr[10]
,它就在内存中占用了 10 个连续的整数空间。
顺序表的优点:
-
访问速度快:通过下标可以直接访问元素,时间复杂度是 O(1)。
-
实现简单:用数组就能实现,代码容易理解。
顺序表的缺点:
-
插入和删除慢:如果要在中间插入或删除元素,需要移动大量数据,时间复杂度是 O(n)。
-
大小固定:数组的大小是固定的,如果数据量超过数组容量,需要重新分配更大的空间。
-
顺序表的基本操作
顺序表的基本操作包括:增、删、查、改。下面我们用大白话解释这些操作。
-
增加元素:
-
在顺序表的末尾添加一个元素很简单,直接放到最后一个空位就行。
-
如果要在中间插入元素,就需要把后面的元素都往后挪,腾出位置。
-
-
删除元素:
-
删除末尾元素很简单,直接丢掉就行。
-
如果删除中间的元素,就需要把后面的元素都往前挪,填补空缺。
-
-
查找元素:
-
通过下标可以直接找到元素,速度很快。
-
如果要根据值查找元素,需要从头到尾遍历,直到找到目标。
-
-
修改元素:
-
通过下标找到元素后,直接修改它的值就行。
-
C 语言实现顺序表
下面是一个简单的顺序表实现代码,包含初始化、插入、删除、查找和打印功能。
#include <stdio.h>
#include <stdlib.h>#define MAX_SIZE 100 // 定义顺序表的最大容量// 定义顺序表结构体
typedef struct {int data[MAX_SIZE]; // 用数组存储数据int length; // 当前顺序表的长度
} SeqList;// 初始化顺序表
void InitList(SeqList *list) {list->length = 0; // 初始长度为 0
}// 插入元素
int InsertList(SeqList *list, int index, int value) {if (index < 0 || index > list->length || list->length == MAX_SIZE) {return -1; // 插入位置不合法或顺序表已满}// 将插入位置后的元素往后挪for (int i = list->length; i > index; i--) {list->data[i] = list->data[i - 1];}list->data[index] = value; // 插入新元素list->length++; // 长度加 1return 0;
}// 删除元素
int DeleteList(SeqList *list, int index) {if (index < 0 || index >= list->length) {return -1; // 删除位置不合法}// 将删除位置后的元素往前挪for (int i = index; i < list->length - 1; i++) {list->data[i] = list->data[i + 1];}list->length--; // 长度减 1return 0;
}// 查找元素
int FindList(SeqList *list, int value) {for (int i = 0; i < list->length; i++) {if (list->data[i] == value) {return i; // 返回元素的下标}}return -1; // 未找到
}// 打印顺序表
void PrintList(SeqList *list) {printf("顺序表内容:");for (int i = 0; i < list->length; i++) {printf("%d ", list->data[i]);}printf("\n");
}int main() {SeqList list;InitList(&list); // 初始化顺序表// 插入元素InsertList(&list, 0, 10); // 在第 0 个位置插入 10InsertList(&list, 1, 20); // 在第 1 个位置插入 20InsertList(&list, 2, 30); // 在第 2 个位置插入 30PrintList(&list); // 打印顺序表// 删除元素DeleteList(&list, 1); // 删除第 1 个位置的元素PrintList(&list); // 打印顺序表// 查找元素int index = FindList(&list, 30);if (index != -1) {printf("元素 30 的下标是:%d\n", index);} else {printf("未找到元素 30\n");}return 0;
}
顺序表的使用场景
-
数据量固定且需要快速访问:比如存储一周的温度数据,数据量固定,且需要快速访问某一天的温度。
-
简单的数据存储:比如存储学生的成绩列表,数据量不大,且不需要频繁插入和删除。
-
作为其他数据结构的基础:顺序表是很多高级数据结构(如栈、队列)的基础。
下面是一个顺序表的示意图:
下标: 0 1 2 3 4 数据:[10, 20, 30, 40, 50] 长度:5
-
每个格子代表一个数据元素,下标从 0 开始。
-
数据是连续存储的,就像一排小房子。
顺序表与数组的区别
顺序表和数组看起来很相似,但它们之间有一些关键的区别。为了更好地理解,我们可以把顺序表看作是一个“高级版”的数组,它在数组的基础上增加了一些功能和灵活性。
1. 数组是什么?
数组是一种最基本的数据结构,它是一块连续的内存空间,用来存储相同类型的数据。比如:
int arr[5] = {10, 20, 30, 40, 50};
数组的特点是:
-
大小固定:数组一旦定义,大小就不能改变了。
-
直接访问:通过下标可以快速访问任意位置的元素。
-
功能单一:数组只负责存储数据,没有额外的功能(比如动态扩容)。
2. 顺序表是什么?
顺序表是基于数组实现的,但它比数组更“智能”。顺序表不仅用数组存储数据,还记录了当前存储的元素个数(长度),并提供了一些常用的操作(比如插入、删除、查找等)。
顺序表的特点是:
-
动态管理:顺序表可以动态管理数据,比如插入、删除元素。
-
长度可变:顺序表的长度可以根据需要变化(虽然底层数组大小固定,但可以通过重新分配数组实现扩容)。
-
功能丰富:顺序表封装了常用的操作,使用起来更方便。
3. 顺序表和数组的区别
特性 | 数组 | 顺序表 |
---|---|---|
大小 | 固定大小,定义后不能改变 | 可以动态扩容(需要重新分配内存) |
长度管理 | 需要手动记录有效元素个数 | 内部记录长度,方便管理 |
功能 | 只提供存储和访问功能 | 提供插入、删除、查找等操作 |
灵活性 | 较低,适合数据量固定的场景 | 较高,适合数据量变化的场景 |
实现复杂度 | 简单 | 较复杂,需要封装更多功能 |
4. 代码对比
数组的用法:
int arr[5] = {10, 20, 30, 40, 50}; // 定义一个数组
arr[2] = 100; // 修改第 3 个元素
printf("%d\n", arr[2]); // 访问第 3 个元素
顺序表的用法:
// 定义顺序表
typedef struct {int data[100]; // 底层数组int length; // 当前长度
} SeqList;// 插入元素
void InsertList(SeqList *list, int index, int value) {// 插入逻辑(需要移动元素)
}// 删除元素
void DeleteList(SeqList *list, int index) {// 删除逻辑(需要移动元素)
}// 使用顺序表
SeqList list;
list.length = 0; // 初始化长度
InsertList(&list, 0, 10); // 插入元素
DeleteList(&list, 0); // 删除元素
从代码中可以看出,顺序表比数组更“高级”,它封装了更多的功能,使用起来更方便。
5. 使用场景对比
数组的使用场景:
-
数据量固定,比如存储一周的天数(7 天)。
-
只需要简单的存储和访问,不需要频繁插入和删除。
顺序表的使用场景:
-
数据量不确定,比如存储用户输入的数据。
-
需要频繁插入、删除、查找等操作。
6. 图片对比
数组示意图:
下标: 0 1 2 3 4 数据:[10, 20, 30, 40, 50]
-
数组的大小固定为 5,无法动态扩展。
顺序表示意图:
下标: 0 1 2 3 4 5 6 7 数据:[10, 20, 30, 40, 50, _, _, _] 长度:5
-
顺序表的底层数组大小可以更大(比如 8),但只使用了前 5 个位置。
-
可以通过插入操作动态增加数据。
总结
-
数组是最基础的数据结构,适合数据量固定、操作简单的场景。
-
顺序表是基于数组实现的“高级版”,适合数据量变化、操作复杂的场景。
顺序表是一种简单而实用的数据结构,适合数据量固定且需要快速访问的场景。它的实现简单,但插入和删除操作效率较低。通过学习顺序表,我们可以更好地理解更复杂的数据结构。希望这篇文章能帮你轻松掌握顺序表!
版权声明:本文为原创文章,转载请注明出处。
相关文章:
数据结构:顺序表(Sequence List)及其实现
什么是顺序表? 顺序表是一种最简单的数据结构,它就像一排连续的小房子,每个房子里都住着一个数据元素。这些房子是按顺序排列的,每个房子都有一个门牌号(下标),我们可以通过门牌号快速找到对应…...
微信云开发小程序音频播放踩坑记录 - 从熄屏播放到iOS静音
在开发小程序冥想功能时,我们遇到了几个棘手的问题:用户反馈手机熄屏后音频停止、iOS设备播放没声音、冥想音频没有访问计数和CDN缓存优化等。本文将分享这些问题的解决过程和实践经验。 微信小程序简称:Moodo 微信小程序全程:AIMoodo心情日记系统 简…...
Python基础
https://www.w3schools.com/https://docs.python.org/3/ Python 介绍 Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。 要开始学习Python编程,首先就得把Python安装…...
基于Go语言 XTA AI聊天界面实现
项目开源地址: XTA-AI-SDK 人工智能技术的迅速发展,AI聊天应用变得越来越流行。本文将介绍如何使用Go语言和LCL库( Lazarus Component Library)创建一个功能丰富的AI聊天界面。项目主要包含以下模块: 项目背景 本项目旨在为开发…...
线上项目报错OOM常见原因、排查方式、解决方案
概述 OutOfMemoryError(OOM)是 Java 应用程序中常见的问题,通常是由于应用程序占用的内存超过了 JVM 分配的最大内存限制。在 Spring Boot 项目中,OOM 问题可能由多种原因引起。 1. OOM 的常见原因 OOM 通常由以下几种情况引起&…...
AI大模型零基础学习(6):多模态大模型实战——让AI看懂世界
从“文字交互”到“全感官认知”的维度突破 一、多模态大模型:AI的“五感觉醒” 1.1 基础概念重塑 单模态局限:传统大模型仅处理文本(如ChatGPT) 多模态进化: 输入:支持文本、图像、音频、视频、3D模型 …...
基于Spring Boot+Vue的宠物服务管理系统(源码+文档)
项目简介 宠物服务管理系统实现了以下功能: 基于Spring BootVue的宠物服务管理系统的主要使用者分为用户管理模块,由于系统运行在互联网络中,一些游客或者病毒恶意进行注册,产生大量的垃圾用户信息,管理员可以对这些…...
简要分析LeetCode树经典题目(Java)
目录 开场白 实战环节 准备工作 遍历问题 LeetCode144. 二叉树的前序遍历 方法一 方法二 LeetCode94. 二叉树的中序遍历 LeetCode145. 二叉树的后序遍历 方法一 方法二 LeetCode102. 二叉树的层序遍历 LeetCode103. 二叉树的锯齿形层序遍历 LeetCode107. 二叉树的…...
vue3开发打年兽功能
1.效果 WeChat_20250217192041 2.代码 2.1 index.vue <template><div class"pages"><TopNavigationYleftTitle"打年兽"ruleIconColor"#fff"backgroundImage""svgIpcn"backIcon4"gradientBackgroundColor&q…...
动手学Agent——Day2
文章目录 一、用 Llama-index 创建 Agent1. 测试模型2. 自定义一个接口类3. 使用 ReActAgent & FunctionTool 构建 Agent 二、数据库对话 Agent1. SQLite 数据库1.1 创建数据库 & 连接1.2 创建、插入、查询、更新、删除数据1.3 关闭连接建立数据库 2. ollama3. 配置对话…...
如何在 GitHub 中创建一个空目录 ?
GitHub 是开发人员必不可少的工具,它提供了存储、共享和协作代码的平台。一个常见的问题是如何在 GitHub 存储库中创建一个空目录或文件夹。GitHub 不支持直接创建空目录。但是,有一种解决方法是使用一个虚拟文件,通常是一个 .gitkeep 文件。…...
3. 导入官方dashboard
官方dashboard:https://grafana.com/grafana/dashboards 1. 点击仪表板 - 新建 - 导入 注:有网络的情况想可以使用ID,无网络情况下使用仪表板josn文件 2. 在官方dashboard网页上选择符合你现在数据源的dashboard - 点击进入 3. 下拉网页选…...
前端知识速记--HTML篇:HTML5的新特性
前端知识速记–HTML篇:HTML5的新特性 一、语义化标签 HTML5引入了许多新的语义化标签,如 <header>、<footer>、<article>、<section> 等。这些标签不仅提高了网页的可读性和结构性,还有助于SEO(搜索引擎…...
【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站…...
鸿蒙面试题
1.0penHarmony的系统架构是怎样的? 2.电话服务的框架? 3.OpenHarmony与HarmonyOS有啥区别?...
pdf-extract-kit paddle paddleocr pdf2markdown.py(效果不佳)
GitHub - opendatalab/PDF-Extract-Kit: A Comprehensive Toolkit for High-Quality PDF Content Extraction https://github.com/opendatalab/PDF-Extract-Kit pdf2markdown.py 运行遇到的问题: 错误: -------------------------------------- C Tra…...
基于STM32、HAL库、RX8025T(I2C接口)驱动程序设计
一、简介: RX8025T 是一款低功耗、高精度的实时时钟芯片,具有以下特性: I2C 接口通信 内置 32.768 kHz 晶振 提供秒、分、时、日、月、年等时间信息 支持温度补偿,提高时间精度 低功耗设计,适合电池供电的应用 二、I2C初始化: #include "stm32l4xx_hal.h&…...
基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南
一、 前言:拥抱vLLM与T4显卡的强强联合 在探索人工智能的道路上,如何高效地部署和运行大型语言模型(LLMs)一直是一个核心挑战。尤其是当我们面对资源有限的环境时,这个问题变得更加突出。原始的DeepSeek-R1-32B模型虽…...
【Go语言快速上手】第二部分:Go语言进阶之并发编程
文章目录 一、并发编程1. goroutine:创建和调度 goroutine2. channel:无缓冲 channel、有缓冲 channel、select 语句2.1 无缓冲 channel2.2 有缓冲 channel2.3 select 语句 3. sync 包:Mutex、RWMutex、WaitGroup 等同步原语3.1 Mutex&#x…...
《机器学习数学基础》补充资料:四元数、点积和叉积
《机器学习数学基础》第1章1.4节介绍了内积、点积的有关概念,特别辨析了内积空间、欧几里得空间;第4章4.1.1节介绍了叉积的有关概念;4.1.2节介绍了张量积(也称外积)的概念。 以上这些内容,在不同资料中&…...
蓝桥杯篇---IAP15F2K61S2矩阵键盘
文章目录 前言简介矩阵键盘的工作原理1.行扫描2.检测列状态3.按键识别 硬件连接1.行线2.列线 矩阵键盘使用步骤1.初始化IO口2.扫描键盘3.消抖处理4.按键识别 示例代码:4x4矩阵键盘扫描示例代码:优化后的矩阵键盘扫描注意事项1.消抖处理2.扫描频率3.IO口配…...
通过小型语言模型尽可能简单地解释 Transformer
介绍 在过去的几年里,我阅读了无数关于 Transformer 网络的文章,观看了许多视频。其中大部分都非常好,但我很难理解 Transformer 架构,而其背后的主要直觉(上下文敏感嵌入)则更容易掌握。在做演讲时&#…...
GcExcel
GcExcel 简述:GcExcel Java 是一款基于 Java 平台,支持批量创建、编辑、打印、导入/导出Excel文件的服务端表格组件,能够高性能处理和高度兼容 Excel。功能特性(图1)文档查询(图2)...
封装红黑树实现map和set
" 喜欢了你十年,却用整个四月,编织了一个不爱你的谎言。 " 目录 1 源码及其框架分析 2 模拟实现map和set 2.1 实现出复用红黑树的框架 2.2 支持iterator迭代器的实现 2.2.1 代码实现和--这两个运算符 2.3 map支持[ ] Hello,大家…...
Redis进阶使用
在日常工作中,使用Redis有什么需要注意的? 设置合适的过期时间。尽量避免大key问题,避免用字符串存储过大的数据;避免集合的数据量太大,要定期清除。 常用的数据结构有哪些?用在什么地方? 按…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第四节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(Read DTC Information0x19服务) 作者:车端域控测试工程师 更新日期:2025年2月13日 关键词:UDS诊断协议、0x19服务、DTC信息读取、ISO 14229-1:2023、ECU测试 一、服务功能…...
使用Node.js进行串口通信
目录 一、 安装 serialport 库二.、实现方法1.打开串口并配置参数2. 向串口传递信息3. 接收串口信息4. 处理错误5. 关闭串口6. 使用解析器7. 获取串口列表 三、 完整示例代码 一、 安装 serialport 库 首先,需要安装 serialport 库。可以通过 npm 安装:…...
vue3+elementplus新建项目
更新node.js和npm node.js官网更新指南 可以根据自己的操作系统进行选择 我的电脑操作系统是mac os所以我的步骤如下 # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# in lieu of restarting the shell \. &…...
【网络安全 | 漏洞挖掘】跨子域账户合并导致的账户劫持与删除
未经许可,不得转载。 文章目录 概述正文漏洞成因概述 在对目标系统进行安全测试时,发现其运行着两个独立的域名——一个用于司机用户,一个用于开发者/企业用户。表面上看,这两个域名各自独立管理账户,但测试表明它们在处理电子邮件变更时存在严重的逻辑漏洞。该漏洞允许攻…...
VLSM基础知识
VLSM(Variable Length Subnet Mask,变长子网掩码)是一种更灵活的子网划分技术,允许在同一网络中使用不同长度的子网掩码,以满足不同子网对主机数量的需求,最大化IP地址利用率。 一、基础概念 传统子网划分…...
小小小病毒(3)(~_~|)
一分耕耘一分收获 声明: 仅供损害电脑,不得用于非法。损坏电脑,作者一律不负责。此作为作者原创,转载请经过同意。 欢迎来到小小小病毒(3) 感谢大家的支持 还是那句话:上代码! …...
WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程
在当今数字化时代,音视频通讯技术正以前所未有的速度革新着我们的生活与工作方式。WebRTC与EasyRTC作为这一领域的佼佼者,正携手为智能硬件的音视频通讯注入强大动力,开启全新的篇章。 一、WebRTC与智能硬件融合的崭新趋势 WebRTC技术&…...
Lua 数据库访问
Lua 数据库访问 引言 Lua 是一种轻量级的编程语言,因其简洁性和高效性,常被用于游戏开发、嵌入系统和应用程序开发。在许多情况下,数据库访问是应用程序的核心功能之一。本文将深入探讨在 Lua 中如何进行数据库访问,包括连接数据库、执行查询、处理结果以及异常处理等。 …...
rtsp rtmp 跟 http 区别
SDP 一SDP介绍 1. SDP的核心功能 会话描述:定义会话的名称、创建者、时间范围、连接地址等全局信息。媒体协商:明确媒体流的类型(如音频、视频)、传输协议(如RTP/UDP)、编码格式(如H.264、Op…...
蓝桥杯篇---IAP15F2K61S2串口
文章目录 前言简介串口通信的基本参数1.波特率2.数据位3.停止位4.校验位 串口相关寄存器1.SCON2.SBUF3.PCON4.TMOD5.TH1/TL1 串口使用步骤1.配置波特率2.配置串口模式3.使能串口中断4.发送数据5.接收数据6.处理中断 示例代码:串口发送与接收示例代码:串口…...
Linux 远程文件复制传输-----scp/rsync/sftp
scp(Secure Copy Protocol)是基于 SSH 的安全文件传输工具,可用于在本地和远程计算机之间复制文件或目录。 1. scp(基于 SSH 复制文件) a. 复制文件到远程 从本地复制到远程 scp localfile.txt userremote_host:/remo…...
企业文件安全:零信任架构下的文件访问控制
在企业数字化转型的进程中,传统的文件访问控制模型已难以满足日益复杂的网络安全需求。零信任架构作为一种新兴的安全理念,为企业的文件安全访问提供了全新的解决方案。 一、传统文件访问控制的局限性 传统的文件访问控制主要基于网络边界,…...
用deepseek学大模型05-线性回归
deepseek.com:多元线性回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推…...
2009年下半年软件设计师上午真题的知识点整理(附真题及答案解析)
以下是2009年下半年软件设计师上午真题的知识点分类整理,涉及定义的详细解释,供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度,减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和辅存…...
Element Plus table 去除行hover效果
需求: 给table的指定行设置高亮背景色且去除掉这些行的hover效果 思路: 给指定行设置css类名选择需要设置高亮的行的单元格,设置鼠标禁用属性让高亮行继承父元素的背景色 考虑到表格的第一列是勾选框,因此仅选择 tr 下除了第一…...
2010年下半年软件设计师考试上午真题的知识点整理(附真题及答案解析)
以下是2010年下半年软件设计师考试上午真题的知识点分类整理,涉及定义的详细解释,供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度,减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和…...
Mac Golang 开发环境配置
Mac Golang 开发环境配置 Golang 介绍 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 由罗伯特格瑞史莫,罗勃派克(Rob Pike)及肯汤普逊于2007年9月开始设计…...
计算机视觉中图像的基础认知
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 一、图像/视频的基本属性…...
理解 WebGPU 中的 navigator.gpu 和 adapter:从浏览器到显卡的旅程
WebGPU 是一种现代图形 API,旨在为 Web 应用程序提供高性能的图形和计算功能。作为 WebGL 的继任者,WebGPU 提供了更底层的硬件访问和更高效的性能。在 WebGPU 开发中,navigator.gpu 是访问 WebGPU API 的入口点,而 adapter 则是浏…...
【ESP32 IDF】ESP32 linux 环境搭建
ESP32 linux 环境搭建 1. 开发环境2. linux指令 1. 开发环境 liunx镜像 liunx镜像地址 : https://mirrors.xjtu.edu.cn/ubuntu-releases/20.04.6/ubuntu-20.04.6-live-server-amd64.iso 有提示你装openssl,务必装上 2. linux指令 工具 sudo apt-get …...
react传递函数与回调函数原理
为什么 React 允许直接传递函数? 回调函数核心逻辑 例子:父组件控制 Modal 的显示与隐藏 // 父组件 (ParentComponent.tsx) import React, { useState } from react; import { Modal, Button } from antd; import ModalContent from ./ModalContent;co…...
目标检测IoU阈值全解析:YOLO/DETR模型中的精度-召回率博弈与工程实践指南
一、技术原理与数学本质 IoU计算公式: IoU \frac{Area\ of\ Overlap}{Area\ of\ Union} \frac{A ∩ B}{A ∪ B}阈值选择悖论: 高阈值(0.6-0.75):减少误检(FP↓)但增加漏检(FN↑…...
使用grafana v11 建立k线(蜡烛图)仪表板
先看实现的结果 沪铜主力合约 2025-02-12 的1分钟k线图 功能介绍: 左上角支持切换主力合约,日期,实现动态加载数据. 项目背景: 我想通过前端展示期货指定品种某1天的1分钟k线,类似tqsdk 的web_gui 生成图形化界面— TianQin Python SDK 3.7.8 文档 项目架构: 后端: fastap…...
Ubuntu下载安装Docker-Desktop
下载 Ubuntu | Docker Docs 预备工作 Ubuntu增加docker apt库-CSDN博客 安装 sudo apt-get updatesudo apt install gnome-terminal# sudo apt install -y docker-composesudo apt-get install ./docker-desktop-amd64.deb 测试 sudo docker run hello-worldHello from D…...
【大模型】DeepSeek 高级提示词技巧使用详解
目录 一、前言 二、DeepSeek 通用提示词技巧 2.1 DeepSeek 通用提示词技巧总结 三、DeepSeek 进阶使用技巧 3.1 DeepSeek一个特定角色的人设 3.1.1 为DeepSeek设置角色操作案例一 3.1.2 为DeepSeek设置角色操作案例二 3.2 DeepSeek开放人设升级 3.2.1 特殊的人设&#…...