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

【数据结构】栈

目录

1.1 什么是栈

1.2 顺序栈

1.2.1 特性

1.3 链式栈

1.3.1 特性

总结:


1.1 什么是栈

栈是只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底。

特点:栈是先进后出FILO(First In Last Out)

( LIFO(Last In First Out))

1.2 顺序栈

1.2.1 特性

逻辑结构:线性结构

存储结构:顺序存储

操作:创建、入栈、出栈、清空、判空和判满

创空:

#include <stdio.h>
#include <stdlib.h>typedef int datatype;
typedef struct seqstack
{datatype *data; //指向装数据的数组的指针int maxlen;     //保存数组元素的个数(也就是栈的容量)int top;        //成为栈针,也就是栈顶的位置。使用时和之前顺序表中的last用法一样。
} seqstack_t;//创建空栈
seqstack_t *createEmptySeqstack(int len)
{//1.申请空间存放栈的结构体大小空间seqstack_t *p = (seqstack_t *)malloc(sizeof(seqstack_t));if (NULL == p){perror("p malloc err");return NULL;}//2. 初始化p->maxlen = len;p->top = -1; //类似于顺序表中的last,表示栈顶也就是最后一个有效元素的下标。此时数组中没有数据,可以置为-1,那么来了第一个数据以后就可以加一变成0。p->data = (datatype *)malloc(sizeof(datatype) * len);if (NULL == p->data){perror("p->data malloc err");return NULL;}return p;
}//判断是否为满,满返回1 未满返回0
int isFullSeqStack(seqstack_t *p)
{return p->top + 1 == p->maxlen;
}//入栈,data代表入栈的数据
int pushStack(seqstack_t *p, int data)
{//1. 判满if (isFullSeqStack(p)){printf("pushStack err\n");return -1;}//2. 将栈针p->top往上移动一个单位p->top++;//3. 将数据入栈p->data[p->top] = data;return 0;
}//判断栈是否为空
int isEmptySeqStack(seqstack_t *p)
{return p->top == -1;
}//出栈
int popSeqStack(seqstack_t *p)
{//1. 判空if (isEmptySeqStack(p)){printf("popSeqStack err\n");return -1;}//2. 往下移动栈针p->top--;//3. 将之前栈顶数据出栈return p->data[p->top + 1];
}//清空
void clearSeqStack(seqstack_t *p)
{p->top = -1;
}//获取栈顶数据(注意不是出栈操作,如果出栈,相当于删除了栈顶数据,只是将栈顶的数据获取到,不需要移动栈针)
int getTopSeqStack(seqstack_t *p)
{if (!isEmptySeqStack(p))return p->data[p->top];return -1;
}int main(int argc, char const *argv[])
{seqstack_t *p = createEmptySeqstack(6);pushStack(p, 1);pushStack(p, 2);pushStack(p, 3);printf("top is: %d\n", getTopSeqStack(p));while (!isEmptySeqStack(p))printf("%d\n", popSeqStack(p));return 0;
}

练习:

1. 若进栈顺序为 1,2,3,4 一下四种情况不可能出现的出栈序列是( )

A. 1,4,3,2 (1进1出,234进,4出,3出,2出)

B. 2,3,4,1 (12进,2出,3进,3出,4进,4出,1出)

C. 3,1,4,2

D. 3,4,2,1 (123进,3出,4进,4出,2出,1出)

2. 下列叙述正确的是( )

A. 线性表是线性结构

B. 栈与队列是非线性结构

C. 线性链表是非线性结构

D. 二叉树是线性结构

3. 下列关于栈叙述正确的是( )

A.在栈中只能插入数据

B.在栈中只能删除数据

C.栈是先进先出的线性表

D. D.栈是先进后出的线性表

4. 看以下程序有什么问题?

#include <stdio.h>
#include <stdlib.h>void get_mem(int *q)    //q=NULL
{q = (int *)malloc(sizeof(int)); //开辟空间大小不够
}int main(int argc, char const *argv[])
{int i;int *p = NULL;get_mem(p); //p=NULLfor (i = 0; i < 10; i++)p[i] = i;for (i = 0; i < 10; i++)printf("%d\n", p[i]);free(p);return 0;
}

错误:相当于值传递,传递给函数的是NULL,函数内改变q是不会影响到主函数的p的。函数调用结束后p还是为NULL。 开辟空间大小也不够。

修改:可以通过返回值,或者传递二级指针

#include <stdio.h>
#include <stdlib.h>void get_mem(int **q)    //q=&p
{*q = (int *)malloc(sizeof(int)*10); //*q= *&p = p//通过q里面的p的地址真的找到主函数中的p了
}int main(int argc, char const *argv[])
{int i;int *p = NULL;get_mem(&p); //p=malloc的返回值//相当于地址传递,函数调用结束后,p真的指向了函数内开辟的堆区空间了。for (i = 0; i < 10; i++)p[i] = i;for (i = 0; i < 10; i++)printf("%d\n", p[i]);free(p);return 0;
}

1.3 链式栈

1.3.1 特性

逻辑结构:线性结构

存储结构:链式存储

操作:创建、入栈、出栈、判空、清空

出栈:

#include <stdio.h>
#include <stdlib.h>typedef int datatype;
typedef struct node
{datatype data;struct node *next;
} link_node_t, *link_node_p;//创建一个空链式栈
void createEmptyLinkStack(link_node_t **ptop) //ptop=&top
{*ptop = NULL; //*ptop=top
}//入栈, data是入栈的数据
//参数上之所以采用二级指针,因为我们要//随着入栈添加新的节点作为头,top需要永远指向当前链表的头//那么修改main函数中的top,我们能采用地址传递。
int pushLinkStack(link_node_t **ptop, datatype data) //ptop=&top
{//1.创建一个新节点用pnew指针去接收link_node_p pnew = (link_node_p)malloc(sizeof(link_node_t));if (NULL == pnew){perror("pnew malloc err");return -1;}//2.初始化新节点pnew->data = data;pnew->next = NULL;//3.将新节点链接老链表的栈顶节点pnew->next = *ptop; //*ptop=top//4.移动栈针,栈针要永远指向新节点*ptop = pnew;return 0;
}//判断栈是否为空
int isEmptyLinkStack(link_node_t *ptop)
{return NULL == ptop;
}//出栈
datatype popLinkStack(link_node_t **ptop) //ptop=&top
{//1.容错判断:判空if (isEmptyLinkStack(*ptop)) //*ptop=top{printf("isEmptyLinkStack\n");return -1;}//2.定义一个指针pdel,记录此时栈顶节点,也就是将要删除的节点。link_node_p pdel = *ptop;//3.定义一个临时变量,保存要出栈数据,也就是此时栈顶节点中数据datatype temp = (*ptop)->data;//4.将栈针向后移动一个单位*ptop = (*ptop)->next;//5.释放要删除节点free(pdel);pdel = NULL;//6.返回要出栈数据return temp;
}//清空栈
void clearLinkStack(link_node_t **ptop)
{//只要不为空就出栈,直到为空为止while (!isEmptyLinkStack(*ptop))printf("%d ", popLinkStack(ptop));printf("\n");
}//求长度
//用一级指针,是因为只是求长度,不需要修改main函数中top指针的指向
int lengthLinkStack(link_node_t *ptop)
{int len = 0;while (ptop != NULL){len++;ptop = ptop->next;}return len;
}//获取栈顶数据,不是出栈,不需要移动main函数中的top,所以用一级指针
datatype getTopLinkStack(link_node_t *ptop)
{//只要不是空就返回栈顶数据if(!isEmptyLinkStack(ptop))return ptop->data;return -1;
}int main(int argc, char const *argv[])
{link_node_p top;createEmptyLinkStack(&top);pushLinkStack(&top, 1);pushLinkStack(&top, 2);pushLinkStack(&top, 3);printf("top is:%d\n",getTopLinkStack(top));printf("len=%d\n",lengthLinkStack(top));clearLinkStack(&top);return 0;
}

总结:

顺序栈额链式栈的区别?

(1) 顺序栈是顺序存储,内存连续;链式栈是链式存储,内存不连续。

(2) 顺序栈长度受限制,而链式栈不会。

相关文章:

【数据结构】栈

目录 1.1 什么是栈 1.2 顺序栈 1.2.1 特性 1.3 链式栈 1.3.1 特性 总结&#xff1a; 1.1 什么是栈 栈是只能在一端进行插入和删除操作的线性表(又称为堆栈)&#xff0c;进行插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。 特点&#xff1a;栈是先进后出FILO…...

C++初阶—CC++内存管理

第一章&#xff1a;C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(si…...

【机器视觉】OpenCV 图像基本变换

文章目录 介绍机器视觉的核心组成部分机器视觉的关键技术和趋势 4. 图像的基本变换4.1 图像的放大与缩小4.2 图像的翻转4.3 图像的旋转4.4 仿射变换之图像平移4.5 仿射变换之获取变换矩阵4.6 透视变换 介绍 机器视觉&#xff08;Machine Vision&#xff09;是一门跨学科的领域…...

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库&#xff0c;以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证&#xff1a; 服务器级别…...

徐克版射雕唤醒热血武侠魂,共赴新春侠义之约

2025年大年初一&#xff0c;由徐克执导的古装武侠电影《射雕英雄传&#xff1a;侠之大者》将在影院拉开帷幕&#xff0c;在精彩纷呈的春节档电影中&#xff0c;“大IP”“大导演”“大场面”等标签让这部电影自定档起便备受关注&#xff0c;其精良的制作和传统中国武侠风的设定…...

设计模式(观察者模式)

设计模式&#xff08;观察者模式&#xff09; 第三章 设计模式之观察者模式 观察者模式介绍 观察者模式&#xff08;Observer Design Pattern&#xff09; 也被称为发布订阅模式 。模式定义&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候…...

能量函数和能量守恒

在之前的文章1中讨论了与循环坐标相对应的动量守恒定律和动量矩守恒定律&#xff0c;本文将由拉格朗日方程中导出能量函数&#xff0c;进一步讨论能量守恒定律&#xff0c;并给出耗散系统的处理方法&#xff0c;这其中用到的一个关键数学定理是欧拉定理&#xff08;描述如何将一…...

【pycharm发现找不到python打包工具,且无法下载】

发现找不到python打包工具,且无法下载 解决方法&#xff1a; 第一步&#xff1a;安装distutils&#xff0c;在CMD命令行输入&#xff1a; python -m ensurepip --default-pip第二步&#xff1a;检查和安装setuptools和wheel&#xff1a; python -m pip install --upgrade …...

使用 Maxwell 计算母线的电动势

三相短路事件的动力学 三相短路事件在电气系统中至关重要&#xff0c;因为三相之间的意外连接会导致电流大幅激增。如果管理不当&#xff0c;这些事件可能会造成损坏&#xff0c;因为它们会对电气元件&#xff08;尤其是母线&#xff09;产生极大的力和热效应。 短路时&#x…...

【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!

这里写目录标题 什么是Selenium&#xff1f;Selenium基础用法详解环境搭建编写第一个Selenium脚本解析脚本常用的元素定位方法常用的WebDriver方法等待机制 Selenium高级技巧详解页面元素操作处理弹窗和警告框截图和日志记录多窗口和多标签页操作 一个实战的小demo步骤一&#…...

Ubuntu中批量重命名,rename

你可以使用下面的命令批量重命名这些文件&#xff0c;在文件名中插入 _1&#xff1a; 方式一 使用 mv 命令批量重命名 如果你已经在终端中&#xff0c;且当前目录包含这些文件&#xff0c;可以执行以下命令&#xff1a; mv ai.c ai_1.c mv ai.h ai_1.h mv ao.c ao_1.c mv a…...

LINUX 下 NODE 安装与配置

一、官网地址&#xff1a; &#xff08;中文网&#xff09;https://nodejs.cn/ &#xff08;英文网&#xff09;https://nodejs.org/en/ 二、下载安装包 2.1、下载地址&#xff1a;下载 | Node.js 中文网 https://nodejs.cn/download/ 2.2、使用 wget 命令下载到linux 服务器…...

Vue3 el-tree-v2渲染慢的问题

一、现象 使用el-tree-v2处理组织架构权限时&#xff0c;整个树的数据在8500条&#xff0c;勾选数据8200条&#xff0c;打开页面需要8~10秒&#xff0c;用户无法接受。 经调试&#xff0c;发现主要卡在树的渲染回显上&#xff08;勾选数据少时&#xff0c;很快&#xff0c;勾选…...

【redis初阶】浅谈分布式系统

目录 一、常见概念 1.1 基本概念 2.2 评价指标&#xff08;Metric&#xff09; 二、架构演进 2.1 单机架构 2.2 应用数据分离架构 2.3 应用服务集群架构 2.4 读写分离/主从分离架构 2.5 引入缓存 ⸺ 冷热分离架构 2.6 数据库分库分表 2.7 业务拆分 ⸺ 引入微服务 redis学习&…...

模式识别与机器学习 | 十一章 概率图模型基础

隐马尔科夫模型&#xff08;Hidden Markov Model,HMM&#xff09; HMM是建模序列数据的图模型 1、第一个状态节点对应一个初始状态概率分布 2、状态转移矩阵A, 3、发射矩阵概率B 4、对特定的&#xff08;x,y&#xff09;的联合概率可以表示为 α递归计算——前向算法β递归…...

Linux基本指令(1)

一、ls指令 功能&#xff1a;对于目录&#xff0c;显示这个目录下的目录名以及文件名&#xff1b;对于文件&#xff0c;显示文件名 后面可接命令行选项配合使用&#xff0c;接选项时ls与选项以及选项与选项之间要有一个空格&#xff1b; 这里先学习了两个选项&#xff1a;-l…...

逐“绿”前行 企业综合能源管控低碳转型如何推进?

引言&#xff1a; 在“双碳”战略指引下&#xff0c;中国低碳节能各项工作有序推进&#xff0c;逐步建立起碳达峰碳中和“1N”的政策体系&#xff0c;重点领域、重点行业及各地区的碳达峰实施方案相继出台。能源对于促进经济社会发展、增进人民福祉至关重要。近年来&#xff0…...

springboot和vue配置https请求

项目场景&#xff1a; 代码发布到线上使用https请求需要配置ssl证书&#xff0c;前后端都需要修改。 问题描述 如图&#xff0c;我们在调用接口时报如下错误&#xff0c;这就是未配置ssl但是用https请求产生的问题。 解决方案&#xff1a; 前端&#xff1a;在vite.config.js文…...

数据库(2)--建表 表操作

1.建表 语法&#xff1a; create table if not exists 表名( 类型名 类型 comment ‘注释内容’, ... )设置字符集编码与排序规则; create table if not exists student( name char(10) comment 姓名, id bigint comment 学号 )character set utf8mb4 collate utf8mb4_0900_a…...

泷羽sec----学会并玩转powershell【基础1-2】

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

2 逻辑符号

在文件和目录的判断或者其他情况中&#xff0c;可以组合使用多个条件。 逻辑与 (&&) 逻辑与运算符 && 用于在多个条件都为真时执行某个操作。 # 判断文件是否存在且可读 if [ -f "$file" ] && [ -r "$file" ]; thenecho "…...

Android基于回调的事件处理

Android 中的回调机制&#xff1a;基于回调的事件处理详解 在 Android 开发中&#xff0c;回调&#xff08;Callback&#xff09;是一种常见的事件处理机制&#xff0c;主要用于异步操作和事件通知。与传统的基于监听器的事件处理相比&#xff0c;回调机制更加灵活、通用&…...

跨界融合:人工智能与区块链如何重新定义数据安全?

引言&#xff1a;数据安全的挑战与现状 在信息化驱动的数字化时代&#xff0c;数据已成为企业和个人最重要的资产之一。然而&#xff0c;随着网络技术的逐步优化和数据量的爆发式增长&#xff0c;数据安全问题也愈变突出。 数据安全现状&#xff1a;– 数据泄露驱动相关事件驱…...

qml SpringAnimation详解

1. 概述 SpringAnimation 是 Qt Quick 中用于模拟弹簧效果的动画类。它通过模拟物体在弹簧力作用下的反应&#xff0c;产生一种振荡的动画效果&#xff0c;常用于模拟具有自然回弹、弹性和振动的动态行为。这种动画效果在 UI 中广泛应用&#xff0c;特别是在拖动、拉伸、回弹等…...

Qt 5.14.2 学习记录 —— 칠 QWidget 常用控件(2)

文章目录 1、Window Frame2、windowTitle3、windowIcon4、qrc机制5、windowOpacity 1、Window Frame 在运行Qt程序后&#xff0c;除了用户做的界面&#xff0c;最上面还有一个框&#xff0c;这就是window frame框。对于界面的元素&#xff0c;它们的原点是Qt界面的左上角或win…...

Windows service运行Django项目

系统&#xff1a;Windows Service 软件&#xff1a;nssm&#xff0c;nginx 配置Django项目 1、把Django项目的静态文件整理到staticfiles文件夹中 注&#xff1a;settings中的设置 STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, staticfiles/) STATICFILES_DI…...

notebook主目录及pip镜像源修改

目录 一、notebook主目录修改二、pip镜像源修改 一、notebook主目录修改 在使用Jupyter Notebook进行数据分析时&#xff0c;生成的.ipynb文件默认会保存在Jupyter的主目录中。通常情况下&#xff0c;系统会将Jupyter的主目录设置为系统的文档目录&#xff0c;而文档目录通常位…...

Linux(Centos 7.6)命令详解:touch

1.命令作用 如果文件不存在将创建一个空文件&#xff1b;修改文件修改访问时间。 2.命令语法 Usage: touch [OPTION]... FILE... 3.参数详解 Usage: -a&#xff0c;access 只修改访问时间-c&#xff0c;不创建任何文件-d&#xff0c;--dateSTRING 解析STRING并使用它替代…...

ubuntu 下生成 core dump

在Ubuntu下,发现程序崩溃后不生成core dump文件, 即使设置了ulimit -c unlimited后仍然无效。 1.ulimit -c unlimited 输出的的含义是核心转储文件的大小限制,单位是blocks,默认是0,表示不生成core dump文件。 2. 重设core_pattern ulimit -c unlimited后,核心转储文件…...

大数据智能选课系统

1.产品介绍 产品名称&#xff1a;大数据智能选课系统 一、产品概述 随着信息技术的快速发展&#xff0c;大数据技术在教育领域的应用越来越广泛。针对当前高校选课过程中的繁琐操作、资源分配不均等问题&#xff0c;我们研发了一款基于大数据智能分析的选课系统。本系统旨在…...

HTTP-响应协议

HTTP的响应过程&#xff1f; 浏览器请求数据--》web服务器过程&#xff1a;请求过程 web服务器将响应数据-》到浏览器&#xff1a;响应过程 响应数据有哪些内容&#xff1f; 1.和请求数据类似。 2. 响应体中存储着web服务器返回给浏览器的响应数据。并且注意响应头和响应体之间…...

[离线数仓] 总结三、Hive数仓DIM层开发

5.9 数仓开发之DIM层 DIM层设计要点: (1)DIM层的设计依据是维度建模理论,该层存储维度模型的维度表。 (2)DIM层的数据存储格式为orc列式存储+snappy压缩。 (3)DIM层表名的命名规范为dim_表名_全量表或者拉链表标识(full/zip)。 -- 数仓开发之DIM层 -- DIM层设计要点:…...

搭建RK3588开发板Qt交叉编译环境

一、开发环境 在虚拟机里安装Ubuntu20.04Qt5.14.2交叉编译器gcc-linaro-7.5.0 二、相关资料下载 在虚拟机里安装Ubuntu20.04 Ubuntu20.04镜像下载&#xff08;https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/&#xff09;安装Qt5.14.2 下载安装包和源码 安装包(http…...

【Rust自学】11.3. 自定义错误信息

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.3.1. 添加错误信息 在 11.2. 断言(Assert) 中我们学习了assert!、assert_eq!和assert_ne!这三个宏&#xff0c;而这篇文章讲的就是它…...

ROS核心概念解析:从Node到Master,再到roslaunch的全面指南

Node 在ROS中&#xff0c;最小的进程单元就是节点&#xff08;node&#xff09;。一个软件包里可以有多个可执行文件&#xff0c;可执行文件在运行之后就成了一个进程(process)&#xff0c;这个进程在ROS中就叫做节点。 从程序角度来说&#xff0c;node就是一个可执行文件&…...

Autodl安装tensorflow2.10.0记录

首先租用新实例&#xff08;我选的是3080*2卡&#xff09;&#xff0c;由于基础镜像中没有2.10.0版本&#xff0c;选miniconda3的基础环境 创建虚拟环境&#xff1a;conda create --name xxx python3.8&#xff08;环境名&#xff09;激活虚拟环境&#xff1a;conda activate x…...

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较&#xff0c;第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮&#xff1a;i 0 n&#xff1a;n个数&#xff0c;比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …...

代码随想录day03

203 链表基础操作 class Solution { public:ListNode* removeElements(ListNode* head, int val) {while (head!NULL&&head->valval){ListNode* temphead;headhead->next;delete temp;}ListNode* curhead;while (cur!NULL&&cur->next!NULL){if(cur-…...

python-leetcode-无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; class Solution:def lengthOfLongestSubstring(self, s: str) -> int:char_set set()left 0max_length 0for right in range(len(s)):while s[right] in char_set:char_set.remove(s[left])left 1char_…...

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…...

RNN之:LSTM 长短期记忆模型-结构-理论详解(Matlab向)

前言 递归&#xff01;循环神经网络Recurrent Neural Network 循环神经网络&#xff08;又称递归神经网络&#xff0c;Recurrent Neural Network&#xff0c;RNN&#xff09;。是一种用于处理序列数据的神经网络结构&#xff0c;具有记忆功能&#xff0c;能够捕捉序列中的时间…...

vue的路由守卫逻辑处理不当导致部署在nginx上无法捕捉后端异步响应消息等问题

近期对前端的路由卫士有了更多的认识。 何为路由守卫&#xff1f;这可能是一种约定俗成的名称。就是VUE中的自定义函数&#xff0c;用来处理路由跳转。 import { createRouter, createWebHashHistory } from "vue-router";const router createRouter({history: cr…...

C++版的飞翔的小鸟

忙了几天&#xff0c;写了个小鸟游戏打发时间。 MINGWOPENGL 作者很懒&#xff0c;具体看readme.txt吧。 好吧&#xff0c;这就是个当网盘用的&#xff0c;没有售后服务的&#xff0c;而且还不怎么会上传文件。。。&#x1f602;&#x1f602; 顺便问下&#xff0c;这破玩意上…...

深入详解自然语言处理(NLP)中的语言模型:BERT、GPT及其他预训练模型的原理与应用

【自然语言处理】——深入详解自然语言处理&#xff08;NLP&#xff09;中的语言模型&#xff1a;BERT、GPT及其他预训练模型的原理与应用 自然语言处理&#xff08;NLP&#xff09;是人工智能&#xff08;AI&#xff09;领域中的重要分支&#xff0c;旨在通过计算机处理和分析…...

EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)

前情&#xff1a;EFCore HasDefaultValueSql 小伙伴在使用 HasDefaultValueSql 时&#xff0c;对相关的 ValueGeneratedOnAdd 也有了疑问&#xff1a; ValueGeneratedOnAdd 和 HasDefaultValueSql 是 Entity Framework Core 中用于管理字段默认值的两种不同配置方式&#xff0…...

React PureComponent使用场景

1. 基本概念 1.1 什么是 PureComponent PureComponent 是 React 提供的一个优化类组件&#xff0c;它通过自动实现 shouldComponentUpdate 生命周期方法&#xff0c;对 props 和 state 进行浅比较来决定是否需要重新渲染组件。 1.2 与 Component 的区别 // 普通 Component …...

初学者如何利用AI辅助编程快速搭建软件原型

在当今这个快速发展的科技时代&#xff0c;AI辅助编程已成为软件开发领域的一大助力&#xff0c;尤其在搭建软件原型阶段&#xff0c;更是能帮助开发者快速探索众多想法&#xff0c;创造出新事物。吴恩达老师最近分享了关于搭建简单Web应用原型的一些最佳实践&#xff0c;其中重…...

六、Angular 发送请求/ HttpClient 模块

一、应用 HttpClient 模块 angular/common/http 中的 HttpClient 类基于浏览器提供的 XMLHttpRequest 接口。要想使用 HtpClient 模块&#xff0c;就要先导入 Anqular 的 HttpClientModule。大多数 Web 应用程序都会在根模块 AppModule 中导入它。 编辑 src/app/app.module.ts…...

11_Redis数据类型-Geo地理位置

1.Geo地理位置介绍 1.1 基本概念 Redis中的GEO(Geographic)是一种专门用于处理地理位置信息的功能模块,自Redis 3.2版本引入。它特别适合用于LBS(基于位置的服务)应用,如查找附近的餐馆、用户或兴趣点等。Redis GEO的实现依赖于有序集合(sorted set),并且利用了Geoh…...

电脑每次开机卡到windows图标界面进不去

我遇到的现象是&#xff1a; 可以正常开机&#xff0c;也可以重装系统&#xff0c;主板电池换过&#xff0c;硬盘&#xff0c;内存也没问题&#xff0c;但每次开机都会卡到这个界面不动&#xff0c;也不崩溃&#xff0c;也进不去系统。最后的解决方法&#xff1a;换CPU&#x…...