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

数据结构-树

1. 二叉树遍历

在这里插入图片描述
Alt

#include <stdbool.h>
#include "stdio.h"
#include "stdlib.h"typedef struct TNode *Position;
typedef Position BinTree; // 二叉树类型
typedef char ElementType;// 树结点定义
struct TNode {ElementType Data; // 结点数据BinTree Left; // 指向左子树BinTree Right; // 指向右子树
};// 中序遍历 左->中->右
void InorderTraversal(BinTree BT) {if (BT) {InorderTraversal(BT->Left);printf("%c\t", BT->Data);InorderTraversal(BT->Right);}
}// 先序遍历 中->左->右
void PreorderTraversal(BinTree BT) {if (BT) {printf("%c\t", BT->Data);PreorderTraversal(BT->Left);PreorderTraversal(BT->Right);}
}// 后序遍历 左->右->中
void PostorderTraversal(BinTree BT) {if (BT) {PostorderTraversal(BT->Left);PostorderTraversal(BT->Right);printf("%c\t", BT->Data);}
}// 定义队列中结点
struct QueueNode {BinTree Data;struct QueueNode * Next;
};
typedef struct QueueNode * QNode;
// 定义队列
struct Queue{QNode Front, Rear; // 队列头尾指针
};
typedef struct Queue *LinkedQueue;bool IsEmpty(LinkedQueue Q){return (Q->Front == Q->Rear);
}bool CreatQueue(LinkedQueue Q){QNode node = malloc(sizeof(struct QueueNode));if(node == NULL) return 0;Q->Front = Q->Rear = node;return true;
}bool AddQueue(LinkedQueue Q,BinTree X){QNode newNode = malloc(sizeof (struct QueueNode));newNode->Data = X;Q->Rear->Next = newNode;Q->Rear = newNode;return true;
}BinTree DeleteQueue(LinkedQueue Q){BinTree e = Q->Front->Next->Data;QNode node = Q->Front->Next;if(Q->Front==Q->Rear) Q->Front=Q->Rear=NULL;Q->Front->Next = Q->Front->Next->Next;if(Q->Rear == node) Q->Rear = Q->Front;free(node);return e;
}// 层次遍历 从上到下,从左到右
void LevelorderTraversal(BinTree BT) {LinkedQueue queue;   //先搞一个队列queue = malloc(sizeof (struct Queue));BinTree node;if(!BT) return;CreatQueue(queue);AddQueue(queue,BT);//    printf("run");while (IsEmpty(queue)==0) {   //不断重复,直到队列空为止node = DeleteQueue(queue);   //出队一个元素,打印值printf("%c\t", node->Data);if(node->Left)    //如果存在左右孩子的话AddQueue(queue, node->Left);if(node->Right)AddQueue(queue, node->Right);}}int main() {BinTree A = malloc(sizeof(struct TNode));A->Data = 'A';BinTree B = malloc(sizeof(struct TNode));B->Data = 'B';BinTree C = malloc(sizeof(struct TNode));C->Data = 'C';BinTree D = malloc(sizeof(struct TNode));D->Data = 'D';BinTree E = malloc(sizeof(struct TNode));E->Data = 'E';BinTree F = malloc(sizeof(struct TNode));F->Data = 'F';A->Left = B;A->Right = C;B->Left = D;B->Right = E;C->Right = F;C->Left = NULL;D->Left = NULL;D->Right = NULL;E->Left = NULL;E->Right = NULL;F->Left = NULL;F->Right = NULL;printf("中序遍历: ");InorderTraversal(A);printf("\n");printf("先序遍历: ");PreorderTraversal(A);printf("\n");printf("后序遍历: ");PostorderTraversal(A);printf("\n");printf("层次遍历: ");LevelorderTraversal(A);
}

2. 输出二叉树的所有叶子结点

// 输出叶结点
// 在先序遍历的基础上加上判断语句
void PreorderPrintLeaves(BinTree BT){if(BT){// 没有左子树和右子树的结点——叶子节点if(BT->Left==NULL&&BT->Right==NULL){printf("%c\t",BT->Data);}PreorderPrintLeaves(BT->Left);PreorderPrintLeaves(BT->Right);}
}

3.输出树的高度

树的高度 = 左右子树中最高的再加一
左子树的高度 = 左右子树中最高的加一
右子树的高度 = 左右子树中最高的加一
在这里插入图片描述

// 输出树的高度
int GetHeight(BinTree BT){int HL , HR , MaxH=0;if(BT){HL = GetHeight(BT->Left);  // 左子树高度HR = GetHeight(BT->Right);  // 右子树高度MaxH = HL>HR?HL:HR;return (MaxH+1);} else{return 0; // 树为空}
}

4.二叉搜索树

二叉搜索树满足以下性质

  1. 非空左子树所有键值小于根节点键值
  2. 非空右子树所有键值大于根节点键值
  3. 左右子树都是二叉搜索树

4.1搜索

// 二叉搜索树查找(递归)
Position Find1(BinTree BST, ElementType X){if(BST == NULL) return 0;if(X>BST->Data)return Find1(BST->Right,X);else if(X<BST->Data)return Find1(BST->Left,X);else if(X==BST->Data)return BST; // 查找成功,返回当前结点的地址
}
// 二叉搜索树查找(循环)
Position Find2(BinTree BST, ElementType X){while(BST){if(X>BST->Data)BST = BST->Right;else if (X<BST->Data)BST = BST->Left;else if (X == BST->Data)break;}return BST;
}

4.2插入

// 二叉搜索树的插入
BinTree Insert(BinTree BST, ElementType X){if(!BST){BST = (BinTree) malloc(sizeof (struct TNode));BST->Data = X;BST->Right = NULL;BST->Left = NULL;} else{if(X>BST->Data) BST->Right = Insert(BST->Right,X);else if(X<BST->Data) BST->Left = Insert(BST->Left,X);}return BST;

4.3 查找最大最小值

最大值:最右分支的端结点上
最小值:最左分支的端结点上

// 二叉搜索树查找最小值
Position FindMin(BinTree BST){if(BST){while(BST->Left)BST = BST->Left;return BST;}
}// 二叉搜索树查找最大值
Position FindMax(BinTree BST){if(BST){while(BST->Right)BST = BST->Right;return BST;}
}

4.4删除

考虑三种情况

  1. 删除叶节点:直接删
  2. 删除的结点只有一个孩子节点:删除时需要改变父结点指针
  3. 删除的结点有左右两棵子树:取其右子树的最小元素填充或者取其左子树的最大元素填充
BinTree Delete(BinTree BST, ElementType X){Position tmp;if(BST == NULL) printf("未找到删除元素");else{if(X<BST->Data)BST->Left = Delete(BST->Left,X); // 左子树递归删除else if(X>BST->Data)BST->Right = Delete(BST->Right,X); // 右子树递归删除else{ // 需要删除的结点if(BST->Left&&BST->Right){ // 删除的结点有左右子树tmp = FindMin(BST->Right);BST->Data = tmp->Data;BST->Right = Delete(BST->Right,BST->Data); // 从右子树删除最小元素} else{ // 被删除的结点有一个或无子结点tmp = BST;if(!BST->Left)BST = BST->Right;elseBST = BST->Right;free(tmp);}}return BST;}
}

相关文章:

Crowd counting 系列NO.2—MCNN

声明&#xff1a;博客是用latex写的&#xff0c;所以直接用图片来展示吧&#xff0c;效果是一样的。下载资源网上都很容易搜到&#xff0c;如需下载资源&#xff0c;请留言。...

[20240426]sql_id 转换hash_value.txt

[20240426]sql_id 转换hash_value.txt--//以前写的脚本,转换sql_id to hash_value.遇到问题:$ cat s2p.sh#! /bin/bash# convert sql_id to hash_valueodebug=${ODEBUG:-0}sql_id="$*"v1=$(echo $sql_id | tr $(echo {0..9} {a..z} | tr -d eilo ) $( echo {0..9} {a…...

cms标准GB15084

...

hexo 博客插入本地图片时遇到的坑

哈喽大家好,我是咸鱼。 最近一直在折腾博客的事,说是 hexo 极易上手,我觉得只仅限于在安装部署的时候,随着对 hexo 的深入使用,发现遇到的问题还是挺多的。 那今天来讲一下我在把本地图片插入到 hexo 博客文章中遇到的坑。 遇到的问题 这是我的 hexo 环境: hexo: 7.2.0 n…...

拉取VUE并运行

一、通过从git项目中拉取项目后并启动运行 (需要先安装npm --- npm install) 1、拉取项目后安装npm 安装报错 解决: 1、复制这个路径,打开文件夹 (找到npm的安装路径,查看是否有node.exe的启动文件。)打开后会发现没有 2、找到node的安装位置把node.exe复制到npm的文…...

Datacenter RPCs can be General and Fast——论文泛读

NSDI 2019 Paper 论文阅读笔记整理 问题 从现代高速数据中心网络中挤出最佳性能意味着要进行复杂的专业化&#xff0c;打破软件和硬件层之间的抽象障碍。导致依赖网络技术的联合设计分布式系统激增&#xff0c;包括RDMA[18&#xff0c;25&#xff0c;26&#xff0c;38&#x…...

数据结构-树

1. 二叉树遍历 #include <stdbool.h> #include "stdio.h" #include "stdlib.h"typedef struct TNode *Position; typedef Position BinTree; // 二叉树类型 typedef char ElementType;// 树结点定义 struct TNode {ElementType Data; // 结点数据Bin…...

Python3 循环语句

本章节将为大家介绍 Python 循环语句的使用。 Python 中的循环语句有 for 和 while。 Python 循环语句的控制结构图如下所示&#xff1a; while 循环 Python 中 while 语句的一般形式&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)…… 执行流程…...

时序数据处理中的拟合问题

对于深度学习或机器学习模型而言,我们不仅要求它对训练数据集有很好的拟合(训练误差),同时也希望它可以对未知数据集(测试集)有很好的拟合结果(泛化能力),所产生的测试误差被称为泛化误差。度量泛化能力的好坏,最直观的表现就是模型的过拟合(overfitting)和欠拟合(…...

[数据结构基础]排序算法第一弹 -- 直接插入排序和希尔排序

目录 一. 排序的概念及分类 1.1 排序的概念 1.2 常见的排序算法 二. 直接插入排序 2.1 直接插入排序的实现逻辑 2.2 直接插入排序的实现代码 2.3 直接插入排序的时间复杂度分析 三. 希尔排序 3.1 希尔排序的实现逻辑 3.2 希尔排序实现代码 3.3 希尔排序的效率测试 …...

厚积薄发打卡Day115:Debug设计模式<简单工厂、工厂方法、抽象工厂>

厚积薄发打卡Day115&#xff1a;Debug设计模式<简单工厂、工厂方法、抽象工厂> 简单工厂 定义 由一个工厂对象决定创建出哪一种产品类的实例&#xff08;严格意义并不是设计模式&#xff0c;更是一种风格&#xff09; 类型&#xff1a;创建型&#xff0c;但不属于GOF…...

python元组

python元组 文章目录python元组一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.创建元组2.访问元组3.修改元组4.删除元组5.索引及截取6.元组运算符7.内置函数总结一、实验目的 掌握元组的用法 二、实验原理 Python 的元组与列表类似&#xff0c;不同之处在…...

gcc中预定义的宏__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__

今天在看Linux系统编程这本书的代码的时候看到了__GNUC__&#xff0c;不太清楚这个宏所以去查了一下&#xff0c;以此记录。GNU C预定义了一系列的宏&#xff0c;这些宏都是以双下划线开始的&#xff0c;这里只讲一下__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__&#xff0c;完…...

AxMath使用教程(持续更新中)

前言 这两天学了学Latex&#xff0c;主要是为了以后写毕业论文做铺垫&#xff0c;而且Latex在数学公式这一方面&#xff0c;要比Word方便许多&#xff0c;于是我就下载了一款国产的公式编辑器——AxMath。永久会员不贵&#xff0c;只要36元&#xff0c;而且软件很好用&#xf…...

day11 栈和队列 | 20、有效的括号 1047、删除字符串中的所有相邻重复项 150、逆波兰表达式求值

题目 20、有效的括号 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序…...

【前端面试】http面试整理

"一问一答"模型的协议 客户端通过http请求&#xff1b;服务器端根据请求返回客户想要的资源&#xff1b;客户端接收到资源&#xff1b;http是什么 HTTP是超文本传输协议&#xff0c;是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约…...

倒霉倒霉倒霉(传送门 bfs 三维数组 递归 综合运用

题目描述“啊&#xff01;倒霉倒霉倒霉~”龙叔被困在一座大厦里了&#xff0c;可恶的瓦龙把这座大厦点燃了&#xff0c;他借机消灭龙叔。这座大厦有L层&#xff0c;每一层都有R*C个房间。熊熊火焰蔓延十分快&#xff0c;有的房间已经着火了&#xff0c;龙叔没办法通过。这时老爹…...

C++函数定义和调用介绍

C函数定义和调用介绍 函数的意义&#xff1a;利用率高&#xff0c;可读性强&#xff0c;利于移植。 一个C程序中主函数有且只有一个&#xff0c;是程序的入口&#xff0c;而函数&#xff08;或称子函数&#xff09;可以有很多。 每个 C 程序都至少有一个函数&#xff0c;即主…...

手把手带初学者快速入门 JAVA Web SSM 框架

博主也是刚开始学习SSM&#xff0c;为了帮大家节省时间&#xff0c;写下SSM快速入门博客 有什么不对的地方还请 私信 或者 评论区 指出 ​只是一个简单的整合项目&#xff0c;让初学者了解一下SSM的大致结构 项目先把框架写好&#xff0c;之后在填写内容 项目压缩包 完整的蓝奏…...

RocketMQ源码本地搭建调试

1 GitHub源码 git clone https://github.com/apache/rocketmq.git导入IDEA&#xff0c;可在命令行执行mvn compile一下&#xff0c;保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。 2 启动Namesrv 到namesrv模块找到NamesrvStart…...

Axios 二次封装并使用

index.js import axios from "axios";let token localStorage.getItem("token"); // let token "123213"; class Request {// 自定义变量instance;constructor(config) {// console.log(config)// 创建axios 实例&#xff0c;变量接收this.in…...

【SpringCloud】Nacos集群搭建

集群结构图官方给出的Nacos集群图如下&#xff1a;其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们接下来要尝试 Nacos集群搭建&#xff0c;效果图如下所示&#xff1a;三个nacos节点的地址&#xff1a;节点ipportnacos1l…...

【CSDN的2022与2023】普普通通的三年,从懵懂、焦虑到坚定、奋进,破除焦虑努力成为更好的自己

大家好&#xff0c;我是黄小黄&#xff01;一名普通的软件工程在读学生。最近终于闲下来了一丢丢&#xff01;借着休息之余&#xff0c;来写一篇年度总结散散心~与其说是年度总结&#xff0c;不如说是给大学生活与莽莽撞撞的自己一个交代叭&#xff01; 这些都是小标题~碎碎念1…...

k8s单机版使用本地存储local-path-provisioner

在k8s单机环境中&#xff0c;我们经常使用本机路径作为持久化存储。在k8s官方文档中有两种方式使用本机存储&#xff0c;一种是hostPath&#xff0c;另一种是local volume&#xff0c;这两种都不支持动态扩容&#xff0c;并且程序移植改动比较大&#xff0c;而local-path-provi…...

MySQL优化(1)执行计划explain中type属性详解

系列文章目录1.初始化测试数据1.初始化表格&#xff08;user表&#xff09;2.初始化表格&#xff08;product表&#xff09;3.初始化表格&#xff08;user表数据初始化&#xff09;4.初始化表格&#xff08;product表函数&#xff09;5.初始化表格&#xff08;product表数据初始…...

servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别

servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别servlet过滤器1.filter过滤器的含义2.filter过滤器的使用3.测试-过滤字符编码正确响应中文编码3.1 创建servlet用于显示中文字符3.2 自定义过滤器3.3 配置web.xml中的servlet映射以及过滤器请求拦截3.4 运行输出…...

Java链表OJ题

目录1. 删除链表中等于给定值val的所有结点2. 逆置单链表3. 链表的中间结点4. 链表中倒数第k个结点5. 将两个有序链表合并为一个新的有序链表6. 以给定值x为基准将链表分割成两部分7. 判断是否为回文链表8. 两个链表的第一个公共结点9. 判断链表中是否有环10. 链表开始入环的第…...

0、Spring工程构建Spring快速入门Spring配置文件详解注入Sprint相关API

1、Spring工程构建 创建工程项目目录文件夹 IDEA选择项目new一个module 配置案例 aop创建 创建并下载完毕后&#xff0c;点击file选择projert 选择按照的jdk版本 output选择当前目录&#xff0c; 点击右下方apply 选择facets&#xff0c;点击""号选择web 选择当前…...

网络原理之HTTP/HTTPS、TCP、IP四层协议栈

文章目录一、应用层&#xff08;一&#xff09;xml协议&#xff08;二&#xff09;json协议&#xff08;三&#xff09;protobuffer协议&#xff08;四&#xff09;HTTP协议1. 抓包工具&#xff0c;fiddler2. HTTP报文格式3. HTTP请求(Request)&#xff08;1&#xff09;URL基本…...

CS61B 2021spring HW0

HW 0: A Java Crash Course 文章目录HW 0: A Java Crash CourseA Basic ProgramCreative Exercise 1a: Drawing a TriangleCreative Exercise 1b: DrawTriangleExercise 2、3Optional: Exercise 4Java可视化orz表达积累参考资料这个hw是optional&#xff0c;然后主要是给至少学…...

自动驾驶环境感知——视觉传感器技术

文章目录1. 摄像头的成像原理1.1 单目视觉传感器的硬件结构1.2 单目视觉的成像原理 –小孔成像模型1.3 单目视觉的成像原理 – 像素坐标系1.4 单目视觉三维坐标系转换 – 外参1.5 单目视觉的坐标系转换 – 从世界坐标点到像素坐标1.6 单目视觉的特性2. 视觉传感器的标定2.1 视觉…...

分享148个ASP源码,总有一款适合您

ASP源码 分享148个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 148个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1e2PvBmXxZA8C3IelkP8ZtQ?pwdj7lp 提取码&#x…...

Java线程的生命周期的五种状态

前面在《有关Java多线程的几个概念》&#xff08;https://blog.csdn.net/helloworldchina/article/details/128753898&#xff09;讲述了Java线程的生命周期的五种状态。在这里再详述一下线程的5种状态。 在java中&#xff0c;任何对象都要有生命周期&#xff0c;线程也一样&a…...

springboot自定义拦截器的简单使用和一个小例子

springboot自定义拦截器的使用1. 自定义拦截器2. 拦截器登录验证的小demo2.1 配置pom.xml2.2 创建User的bean组件2.3 创建需要的表单页面以及登录成功的页面2.4 编写controller映射关系2.5 自定义拦截器类&#xff0c;实现intercepetor接口2.6注册添加拦截器&#xff0c;自定义…...

APT之木马静态免杀

前言 这篇文章主要是记录手动编写代码进行木马免杀&#xff0c;使用工具也可以免杀&#xff0c;只不过太脚本小子了&#xff0c;而且工具的特征也容易被杀软抓到&#xff0c;指不定哪天就用不了了&#xff0c;所以要学一下手动去免杀木马&#xff0c;也方便以后开发一个只属于…...

设计模式 - 创建型模式_抽象工厂模式

文章目录创建型模式概述Case场景模拟工程模拟早期单机Redis的使用Bad ImplBetter Impl &#xff08;抽象⼯⼚模式重构代码&#xff09;定义适配接⼝实现集群适配器接口代理方式的抽象工厂类单元测试小结创建型模式 创建型模式提供创建对象的机制&#xff0c; 能够提升已有代码…...

9、断点调试

文章目录9、断点调试9.1 为什么需要Debug9.2 Debug的步骤1 添加断点2 启动调试3 单步调试工具介绍9.3 多种Debug情况介绍1 行断点2 方法断点3 字段断点4 条件断点5 异常断点6 线程断点7 强制结束9.4 自定义调试数据视图9.5 常见问题【尚硅谷】idea实战教程-讲师&#xff1a;宋红…...

yolo结构介绍

更新中 yolo结构: 这个是针对最早的v5版本1.0进行讲解,现在2022最新版本是V6.2。有一些细节的差别比如Backbone部分Focus倍替换成6*6的Conv,bottleneckCSP替换为C3,Neck部分SPP被替换成SPPF等 Release v1.0 ultralytics/yolov5 (github.com) # parameters nc: 80 # n…...

大数据技术架构(组件)7——Hive:Filter PushDown Cases And Outer Join Behavior

1.2、Filter PushDown Cases And Outer Join Behavior前提:关闭优化器set hive.auto.convertjoinfalse; set hive.cbo.enablefalse;Inner Join:1、Join On中的谓词: 左表下推、右表下推2、Where谓词:左表下推、右表下推-- 第一种情况: join on 谓词 selectt1.user_id,t2.user_i…...

【MySQL】第十二部分 子查询

【MySQL】第十二部分 子查询 文章目录【MySQL】第十二部分 子查询12. 子查询12.1 单行子查询12.2 多行子查询12.3 非相关子查询和相关子查询12.4 EXISTS 与 NOT EXISTS关键字总结12. 子查询 子查询 说白了就是嵌套查询,在一个查询语句中嵌套另外一个查询语句进行内部查询. 子…...

Day08 C++STL入门基础知识五——vector容器(下) 插入删除-数据存取-交换容器-预留空间【全面深度剖析+例题代码展示】

More haste, less speed. 欲速则不达 文章目录1. 承接上文2. 插入操作2.1 函数原型(总括)2.2 尾插尾删2.2.1 操作2.2.2 代码展示2.2.3 测试结果2.3 迭代器插入2.3.1 操作2.3.2 代码展示2.3.3 测试结果2.4 think小思考2.4.1 小疑问2.4.2 思路2.4.3 代码展示2.4.4 测试结果3. 删除…...

打工人必知必会(二)——劳动合同解除

目录 1、劳动合同的解除种类 2、协商解除劳动合同 3、用人单位解除劳动合同 1&#xff09;过错性解除劳动合同 2&#xff09;非过错性解除劳动合同 4、经济性裁员解除劳动合同 5、违法解除劳动合同 6、 劳动者解除劳动合同 提前30日以书面形式通知用人单位 员工即时解…...

量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

文章目录1.多因子模型概述2.因子挖掘3.多因子策略4.多因子策略构建基于多因子的策略通用流程Fama-French三因子因子效果测算方法因子测算结论&量化策略构建东西有点多&#xff0c;拆开成多个文章&#xff0c;边写边整合~&#xff0c;应该会分成2部分&#xff1a; 第1部分—…...

(Java高级教程)第四章必备前端基础知识-第三节1:JavaScript简介和基础语法

文章目录一&#xff1a;JavaScript简介&#xff08;1&#xff09;JavaScript概述&#xff08;2&#xff09;JavaScript特点&#xff08;3&#xff09;JavaScript运行过程&#xff08;4&#xff09;JavaScript组成&#xff08;5&#xff09;JavaScript的引入方式和基本使用&…...

好的质量+数量 = 健康的创作者生态

缘起 CSDN 每天都有近万名创作者发表各种内容&#xff0c; 其中博客就有一万篇左右。 这个数量是非常可喜的&#xff0c;这也是 CSDN 的产品、研发运营小伙伴、和各位博主持续工作的结果。 衡量一个 IT 内容平台&#xff0c;除了数量之外&#xff0c;还有另外一些因素&#xf…...

利用Golang可选参数实现可选模式

本文讨论Golang函数可选参数及函数类型&#xff0c;以及如何利用可选函数类型实现可选模式。同时通过构造函数作为示例&#xff0c;实现强大带可选参数的构造函数&#xff0c;让代码更直观、灵活、支持扩展。 从需求开始 可选参数给函数传递额外参数扩展或修改其行为&#xf…...

【Git】Git 的基本使用

Git的简介 Git是一个版本管理控制系统(缩写VCS)&#xff0c;是一个工具&#xff0c;github或者gitee是git命令行工具的网站化。它可以在任何时间点&#xff0c;将文档的状态作为更新记录保存起来&#xff0c;也可以在任何时间点&#xff0c;将更新记录恢复回来。 git的诞生历…...

MyBatis(一)MyBatis概述

一、什么是框架 ● 在文献中看到的framework被翻译为框架 ● java常用的框架&#xff1a; SSM三大框架&#xff1a;SpingSpringMVCMyBatisSpringBootSpringCloud● 框架其实就是对通用代码的封装&#xff0c;提前写好了一堆接口和类&#xff0c;我们可以在做项目的时候直接引…...

吴恩达机器学习笔记(三)逻辑回归

机器学习&#xff08;三&#xff09; 学习机器学习过程中的心得体会以及知识点的整理&#xff0c;方便我自己查找&#xff0c;也希望可以和大家一起交流。 —— 吴恩达机器学习第五章 —— 四、逻辑回归 线性回归局限性 线性回归对于分类问题的局限性&#xff1a;由于离群点…...

[python入门㉞] - python错误和异常处理

目录 ❤ 语法错误 ❤ 异常 ❤ 异常的分类 ❤ 错误异常处理 错误就是Python中的语法错误或者异常(解析错误)。 ❤ 语法错误 语法错误也叫做解析错误&#xff0c;是指python无法正确的识别代码的造成的。根本原因在于人的行为。 解决方法&#xff1a;按照正确的语法进…...

用1行Python代码识别增值税发票,YYDS

大家好&#xff0c;这里是程序员晚枫。 录入发票是一件繁琐的工作&#xff0c;如果可以自动识别并且录入系统&#xff0c;那可真是太好了。 今天我们就来学习一下&#xff0c;如何自动识别增值税发票并且录入系统~ 识别发票 识别发票的代码最简单&#xff0c;只需要1行代码…...

Sharding-JDBC(五)PageHelper分页报错 Can‘t find index: AggregationSelectItem

目录1.详细报错信息&#xff1a;2.问题原因&#xff1a;3.解决方法&#xff1a;3.1&#xff09;使用MyBatisPlus自带的分页功能3.2&#xff09;PageHelper ShardingJDBC53.3&#xff09;PageHelper ShardingJDBC41.详细报错信息&#xff1a; Caused by: org.apache.ibatis.e…...

十六进制转八进制+超大数据处理(蓝桥杯基础练习C/C++)

目录 1 题目要求 2 代码 2.1 以十进制为媒介&#xff08;不可行&#xff09; 2.2 以二进制为媒介 3 可能会遇到的难点 4 结论 5 延伸 5.1 超大数据阶乘 5.2 超大数据加法 5.3 以十进制为媒介的进制转换 1 题目要求 2 代码 2.1 以十进制为媒介&#xff…...

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题&#xff1a;门牌制作 用了一个时间复杂度是n的算法&#xff0c;反正是填空题也不会出现TLE的事&#xff0c;只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…...

kaggle竞赛 | 计算机视觉 | Doodle Recognition Challenge

目录赛题链接赛题背景数据集探索合并多个类别CSV数据集数据建模 (pytorch)赛题链接 https://www.kaggle.com/competitions/quickdraw-doodle-recognition/overview/evaluation 数据集从上述链接中找 赛题背景 Quick&#xff0c;Draw&#xff01;作为实验性游戏发布&#xff…...

如何设计一个70W在线人数的弹幕系统文章分析

原文地址&#xff1a; 如何设计一个70W在线人数的弹幕系统 1&#xff1a;http包头 一个http数据包请求由4个部分组成&#xff1a;请求行、请求头标、空行、请求数据。 请求行分为了三个部分。请求方法&#xff0c;请求url与http版本。请求头行&#xff0c;由关键字值对组成&…...

有哪些有效的复习方法可以帮助备考软考?

软考目前仍然是一个以记忆为主、理解为辅的考试。学过软考的朋友可能会感到困惑&#xff0c;因为软考的知识在日常工作中有许多应用场景&#xff0c;需要理解的地方也很多。但为什么我说它是理解为辅呢&#xff1f;因为这些知识点只要记住了&#xff0c;都不难理解&#xff0c;…...

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分&#xff0c;第一部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;一) 衔接第二部分&#xff0c;第二部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;二) 学生出勤模块&#xff08;全量分析&#xff09;&#xff1a…...

618热门好物大盘点,省心购物指南快看过来!

在618购物节即将拉开帷幕之际&#xff0c;整个互联网仿佛都弥漫着一种节日的热闹与期待。各大品牌纷纷亮出他们的杀手锏&#xff0c;推出了一系列诱人的优惠活动和特色产品&#xff0c;让人眼花缭乱&#xff0c;心动不已。如果你此刻正犹豫着该把哪一件宝贝收入囊中&#xff0c…...

类加载器aa

一&#xff0c;关系图及各自管辖范围 &#xff08;不赘述&#xff09; 二&#xff0c;查看关系 package com.jiazai;public class Main {public static void main(String[] args) {ClassLoader appClassLoader ClassLoader.getSystemClassLoader();//默认System.out.println…...

RFID射频识别中的高频HF

RFID&#xff0c;即 Radio Frequency Identification 射频识别技术&#xff0c;是一种非接触式的自动识别技术&#xff0c;通过无线射频方式进行非接触双向数据通信&#xff0c; 对电子标签或射频卡进行读写&#xff0c; 从而完成读写器与标签之间的数据通信&#xff0c; 实现识…...

建一个wordpress外贸独立站的费用构成与分析

外贸独立站因为独特的优势&#xff0c;越来越被做外贸的跨境电商所青睐。简站主题经常接到做外贸的老板咨询&#xff0c;建一个wordpress外贸独立站大约多少钱&#xff0c;也是被问的最多的问题之一。下面小简就从几个方面讲一下&#xff0c;决定一个wordpress外贸独立站的费用…...

运行SpringBoot项目失败?异常显示Can‘t load IA 32-bit .dll on a AMD 64-bit platform,让我来看看~

原因是&#xff0c;我放入jdk的bin文件夹下的tcnative-1.dll文件是32位的&#xff0c;那么肯定是无法在AMD 64位平台上加载IA 32位.dll。但是网站上给出的都是32位呀&#xff0c;没有64位怎么办&#xff1a; 其实当我们把“tomcat-native-1.2.34-openssl-1.1.1o-win32-bin.zip”…...

【问题记录】Windows命令行中执行.exe文件路径有空格的解决方法

Windows命令行中执行.exe文件路径有空格的解决方法 一&#xff0c;问题现象&#xff1a;二&#xff0c;问题原因三&#xff0c;解决方法 一&#xff0c;问题现象&#xff1a; 在Windows命令行中执行路径中带空格的.exe文件&#xff1a; 会报错&#xff1a; 二&#xff0c;问…...

如何给正弦信号添加12V直流偏置

一个有趣问题的探究&#xff1a; 运放在单电源的情况下只能输出正电压&#xff08;单方向的&#xff09;&#xff0c;这就使得有正负值的信号电压只能输出一半&#xff1a; 【单电源供电的运放如何增加直流偏置】&#xff08;电阻分压法&#xff09;&#xff1a; 单电源供电的…...

速卖通vs亚马逊vs虾皮,三大跨境电商平台详细对比

近几年跨境电商行业可以说是十分火热&#xff0c;跨境电商平台也是非常多&#xff0c;如亚马逊、速卖通、虾皮、lazada等等。今天就给大家分享速卖通、亚马逊和虾皮这三个平台之间的区别&#xff0c;帮助大家快速找到适合自己的平台。 三大跨境电商平台详细对比 速卖通 &#x…...

什么是星型模型和雪花模型

星型模型和雪花模型是数据仓库中常用的两种数据模型设计方法&#xff0c;它们主要用于组织和管理数据&#xff0c;以便进行有效的数据分析和报告。下面分别解释这两种模型&#xff1a; ### 星型模型 (Star Schema) 星型模型是一种简化的多维数据模型&#xff0c;它由一个中心…...

【经验01】spark执行离线任务的一些坑

项目背景: 目前使用spark跑大体量的数据,效率还是挺高的,机器多,120多台的hadoop集群,还是相当的给力的。数据大概有10T的量。 最近在出月报数据的时候发现有一个任务节点一直跑不过去,已经超过失败次数的阈值,报警了。 预警很让人头疼,不能上班摸鱼了。 经过分析发现…...