状态机的练习:按键控制led灯

设计思路:

三个按键控制led输出。

三个按键经过滤波(消抖),产生三个按键标志信号。

三个led数据的产生模块(流水,跑马,闪烁模块),分别产生led信号。

这六路信号(三路按键信号,三路led信号),接入state_led_ctrl模块,进行led_out的控制。

状态机:

 

模块框图:

代码:

/*1位按键消抖
*/ 
module key_filter (input       wire            sys_clk     ,input       wire            sys_rst_n   ,input       wire            key_in      ,output      reg             key_flag    
);// 参数定义parameter   MAX_CNT_10MS = 500_000   ;localparam  IDLE         = 4'b0001   ,FILTER_UP    = 4'b0010   ,SAMPLING     = 4'b0100   ,FILTER_BACK  = 4'b1000   ;// reg signal define reg                 key_in_r1 ;  reg                 key_in_r2 ;reg     [18:0]      cnt_core  ;reg     [3:0]       state_c   ;reg     [3:0]       state_n   ;// wire signal define wire                nege                  ;wire                pose                  ;wire                IDLEtoFILTER_UP       ;wire                FILTER_UPtoIDLE       ;wire                FILTER_UPtoSAMPLING   ;wire                SAMPLINGtoFILTER_BACK ;wire                FILTER_BACKtoIDLE     ;wire                filter_done           ; /******************************************************************/// reg                 key_in_r1 ; always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_in_r1 <= 1'b1 ;elsekey_in_r1 <= key_in ;end // reg                 key_in_r2 ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_in_r2 <= 1'b1 ;elsekey_in_r2 <= key_in_r1 ;end // wire                nege      ;assign  nege = ~key_in_r1 &&  key_in_r2 ;// wire                pose      ;  assign  pose =  key_in_r1 && ~key_in_r2 ;// reg     [3:0]       state_c   ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) state_c <= IDLE ;elsestate_c <= state_n ;end// reg     [3:0]       state_n   ;always @(*) begincase(state_c)IDLE      : if(IDLEtoFILTER_UP)state_n = FILTER_UP ;else state_n = IDLE ;FILTER_UP : if(FILTER_UPtoIDLE)state_n = IDLE ;else if(FILTER_UPtoSAMPLING)state_n = SAMPLING ;else state_n = FILTER_UP ;SAMPLING  : if(SAMPLINGtoFILTER_BACK)state_n = FILTER_BACK ;else state_n = SAMPLING ;FILTER_BACK:if(FILTER_BACKtoIDLE)state_n = IDLE ;elsestate_n = FILTER_BACK ;default   :     state_n = IDLE ;endcaseendassign  IDLEtoFILTER_UP         = (state_c == IDLE)       && (nege) ;assign  FILTER_UPtoIDLE         = (state_c == FILTER_UP)  && (pose) ;assign  FILTER_UPtoSAMPLING     = (state_c == FILTER_UP)  && (filter_done) ;assign  SAMPLINGtoFILTER_BACK   = (state_c == SAMPLING)   && (pose) ;assign  FILTER_BACKtoIDLE       = (state_c == FILTER_BACK)&& (filter_done) ;// reg     [18:0]      cnt_core  ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_core <= 19'd0 ;elsecase (state_c)IDLE       :cnt_core <= 19'd0 ; FILTER_UP  :if(filter_done)cnt_core <= 19'd0 ;else cnt_core <= cnt_core + 1'b1 ;SAMPLING   :cnt_core <= 19'd0 ; FILTER_BACK:if(filter_done)cnt_core <= 19'd0 ;else cnt_core <= cnt_core + 1'b1 ;default    :    cnt_core <= 19'd0 ;endcaseend// wire                filter_doneassign  filter_done = (cnt_core == MAX_CNT_10MS - 1) ;// output reg key_flagalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) key_flag <= 1'b0 ;else if(FILTER_UPtoSAMPLING)key_flag <= ~key_in_r2 ;else key_flag <= 1'b0 ;endendmodule

 

module led_paoma (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;reg     [ 1:0]      cnt_state ;// wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;wire                add_cnt_state ;wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// reg     [ 1:0]      cnt_state ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_state <= 2'd0 ;else if(add_cnt_state) beginif(end_cnt_state)cnt_state <= 2'd0 ;else cnt_state <= cnt_state + 1'b1 ;end else cnt_state <= cnt_state ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// wire                add_cnt_state ;assign  add_cnt_state = end_cnt_500ms ;// wire                end_cnt_state ;assign  end_cnt_state = ((add_cnt_state && (cnt_state == 2'b11 )) ) ; // output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else case (cnt_state)2'b00 :     led_out <= 4'b0001 ;2'b01 :     led_out <= 4'b0010 ;2'b10 :     led_out <= 4'b0100 ;2'b11 :     led_out <= 4'b1000 ;default:    led_out <= 4'b0000 ;endcaseend
endmodule

 

module shanshuo (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;// wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else if(end_cnt_500ms)led_out <= ~led_out ;else led_out <=  led_out ;endendmodule

 

module led_water (input		wire				sys_clk      ,input		wire				sys_rst_n    ,output		reg     [3:0]       led_out     
);parameter   MAX_CNT_500MS = 25_000_000 ;// reg signal definereg     [24:0]      cnt_500ms ;reg     [ 2:0]      cnt_state ; // wire signal definewire                add_cnt_500ms ;wire                end_cnt_500ms ;wire                add_cnt_state ;wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// reg     [24:0]      cnt_500ms ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_500ms <= 25'd0 ;else if(add_cnt_500ms) beginif(end_cnt_500ms)cnt_500ms <= 25'd0 ;else cnt_500ms <= cnt_500ms + 1'b1 ;endelse cnt_500ms <= 25'd0 ;end// reg     [ 1:0]      cnt_state ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) cnt_state <= 2'd0 ;else if(add_cnt_state) beginif(end_cnt_state)cnt_state <= 2'd0 ;else cnt_state <= cnt_state + 1'b1 ;end else cnt_state <= cnt_state ;end// // wire signal define// wire                add_cnt_500ms ;assign  add_cnt_500ms = 1'b1 ;// wire                end_cnt_500ms ;assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;// wire                add_cnt_state ;assign  add_cnt_state = end_cnt_500ms ;// && led_flag// wire                end_cnt_state ;assign  end_cnt_state = ((add_cnt_state && (cnt_state == 3'b101 )) ) ; // output reg [3:0]     led_out always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'b0000 ;else case (cnt_state)3'b000 :     led_out <= 4'b0001 ;3'b001 :     led_out <= 4'b0010 ;3'b010 :     led_out <= 4'b0100 ;3'b011 :     led_out <= 4'b1000 ;3'b100 :     led_out <= 4'b0100 ;3'b101 :     led_out <= 4'b0010 ;default:     led_out <= 4'b0000 ;endcaseend
endmodule

 

module state_led_ctrl (input		wire				sys_clk         ,input		wire				sys_rst_n       ,input       wire                water_flag      ,input       wire                paoma_flag      ,input       wire                shanshuo_flag   ,input       wire    [3:0]       led_water       ,input       wire    [3:0]       led_paoma       ,input       wire    [3:0]       led_shanshuo    ,output	    reg     [3:0]       led_out         
);localparam          IDLE        = 4'b0001 ,WATER       = 4'b0010 ,PAOMA       = 4'b0100 ,SHANSHUO    = 4'b1000 ;// reg signal definereg     [3:0]       state_c ;reg     [3:0]       state_n ;// wire signalwire                IDLEtoWATER         ;wire                IDLEtoPAOMA         ;wire                IDLEtoSHANSHUO      ;wire                WATERtoPAOMA        ;wire                WATERtoSHANSHUO     ;wire                PAOMAtoWATER        ;wire                PAOMAtoSHANSHUO     ;wire                SHANSHUOtoPAOMA     ;wire                SHANSHUOtoWATER     ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/// // reg signal define// reg         state_c ;always @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) state_c <= IDLE ;elsestate_c <= state_n ;end// reg         state_n ;always @(*) begincase(state_c)IDLE     :  if(IDLEtoWATER)state_n = WATER ;else if(IDLEtoPAOMA)state_n = PAOMA ;else if(IDLEtoSHANSHUO)state_n = SHANSHUO ;else state_n = IDLE ;WATER    :  if(WATERtoPAOMA)state_n = PAOMA ;else if(WATERtoSHANSHUO)state_n = SHANSHUO ;else state_n = WATER ;PAOMA    :  if(PAOMAtoWATER)state_n = WATER ;else if(PAOMAtoSHANSHUO)state_n = SHANSHUO ;else state_n = PAOMA ;SHANSHUO :  if(SHANSHUOtoPAOMA)state_n = PAOMA ;else if(SHANSHUOtoWATER)state_n = WATER ;else state_n = SHANSHUO ;default  :  state_n = IDLE ;endcaseendassign  IDLEtoWATER         = (state_c == IDLE      ) && (water_flag   ) ;assign  IDLEtoPAOMA         = (state_c == IDLE      ) && (paoma_flag   ) ;assign  IDLEtoSHANSHUO      = (state_c == IDLE      ) && (shanshuo_flag) ;assign  WATERtoPAOMA        = (state_c == WATER     ) && (paoma_flag   ) ;assign  WATERtoSHANSHUO     = (state_c == WATER     ) && (shanshuo_flag) ;assign  PAOMAtoWATER        = (state_c == PAOMA     ) && (water_flag   ) ;assign  PAOMAtoSHANSHUO     = (state_c == PAOMA     ) && (shanshuo_flag) ;assign  SHANSHUOtoPAOMA     = (state_c == SHANSHUO  ) && (paoma_flag   ) ;assign  SHANSHUOtoWATER     = (state_c == SHANSHUO  ) && (water_flag   ) ;// led_outalways @(posedge sys_clk or negedge sys_rst_n) beginif(~sys_rst_n) led_out <= 4'hf ;else case (state_c)IDLE    :   led_out <= 4'hf ;WATER   :   led_out <= led_water    ;PAOMA   :   led_out <= led_paoma    ;SHANSHUO:   led_out <= led_shanshuo ;default:    led_out <= 4'hf ;endcaseendendmodule

 

module top (input		wire				sys_clk         ,input		wire				sys_rst_n       ,input       wire                key_water       ,input       wire                key_paoma       ,input       wire                key_shanshuo    ,output		wire    [3:0]       led_out         
);// inst wirewire                water_flag      ;wire                paoma_flag      ;wire                shanshuo_flag   ;wire    [3:0]       led_water       ;wire    [3:0]       led_paoma       ;wire    [3:0]       led_shanshuo    ;// inst
key_filter key_filter_inst_water(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_water     ) ,.key_flag               ( water_flag    )  
);key_filter key_filter_inst_paoma(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_paoma     ) ,.key_flag               ( paoma_flag    )  
);key_filter key_filter_inst_shanshuo(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.key_in                 ( key_shanshuo  ) ,.key_flag               ( shanshuo_flag )  
);led_water led_water_isnt (.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_water     )  
);led_paoma led_paoma_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_paoma     )  
);shanshuo shanshuo_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.led_out                ( led_shanshuo  )  
);state_led_ctrl state_led_ctrl_inst(.sys_clk                ( sys_clk       ) ,.sys_rst_n              ( sys_rst_n     ) ,.water_flag             ( water_flag    ) ,.paoma_flag             ( paoma_flag    ) ,.shanshuo_flag          ( shanshuo_flag ) ,.led_water              ( led_water     ) ,.led_paoma              ( led_paoma     ) ,.led_shanshuo           ( led_shanshuo  ) ,.led_out                ( led_out       )  
);endmodule

 

仿真:

`timescale 1ns/1ns
module test_top ();reg 				sys_clk         ;reg 				sys_rst_n       ;reg                 key_water       ;reg                 key_paoma       ;reg                 key_shanshuo    ;wire    [3:0]       led_out         ;top top_inst(.sys_clk            ( sys_clk       ) ,.sys_rst_n          ( sys_rst_n     ) ,.key_water          ( key_water     ) ,.key_paoma          ( key_paoma     ) ,.key_shanshuo       ( key_shanshuo  ) ,.led_out            ( led_out       )  
);defparam    top_inst.key_filter_inst_water.MAX_CNT_10MS     = 50 ;defparam    top_inst.key_filter_inst_paoma.MAX_CNT_10MS     = 50 ;defparam    top_inst.key_filter_inst_shanshuo.MAX_CNT_10MS  = 50 ;defparam    top_inst.led_water_isnt.MAX_CNT_500MS           = 50 ;defparam    top_inst.led_paoma_inst.MAX_CNT_500MS           = 50 ;defparam    top_inst.shanshuo_inst.MAX_CNT_500MS            = 50 ;parameter   CYCLE = 20 ;initial beginsys_clk      = 1'b1 ;sys_rst_n   <= 1'b1 ;key_water   <= 1'b1 ;key_paoma   <= 1'b1 ;key_shanshuo<= 1'b1 ;#( CYCLE * 10 )     ;sys_rst_n <= 1'b0   ;#( 200 )            ;sys_rst_n <= 1'b1   ;#( CYCLE * 10 )     ;key_water <= 1'b0   ;#( CYCLE * 100 )    ;key_water <= 1'b1   ;#( CYCLE * 1000 )   ;key_paoma <= 1'b0   ;#( CYCLE * 100 )    ;key_paoma <= 1'b1   ;#( CYCLE * 1000 )   ;key_shanshuo <= 1'b0;#( CYCLE * 100 )    ;key_shanshuo <= 1'b1;#( CYCLE * 1000 )   ;$stop               ;endalways #( CYCLE / 2 ) sys_clk = ~sys_clk ;endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 注入RedisTemplat 启动报错

需求 因为需要限制部门内多个人员同一时间操作同一批客户的需求&#xff0c;考虑下决定用Redis滑动窗口实现自过期以及并发校验。 问题 新建了个Redis工具类封装RedisTemplat 操作&#xff0c;到启动时却发现无法正常启动&#xff0c;报错注入错误。 The injection point has…

SpringBoot集成系列--ElasticJob

文章目录 一、集成步骤1、添加 ElasticJob 的依赖2、配置 ElasticJob3、定义Job 二、ElasticJob-UI三、Elastic-Job分片理解四、原理 一、集成步骤 1、添加 ElasticJob 的依赖 引入相关依赖到pom.xml <!-- Elastic-Job --> <dependency><groupId>org.apac…

Liunx Centos 防火墙操作

liunx centos 防火墙 查看防火墙状态 systemctl status firewalld查看已经开放的端口 firewall-cmd --list-ports添加端口3306 firewall-cmd --zonepublic --add-port3306/tcp --permanent重启防火墙 firewall-cmd --reload数据库开放账号可以外网登陆 mysql -u root -p …

JavaSE语法之五:数组的定义与使用(超详解!!!)

文章目录 一、数组的概念1. 什么是数组2. 数组的创建及初始化3. 数组的使用3.1 数组中元素的访问3.2 遍历数组 二、数组是引用类型1. 初始JVM的内存分布2. 基本类型变量与引用变量的区别3. 引用变量4. 认识null 三、数组的应用场景1. 保存数据2. 作为函数的参数2.1 参数传基本类…

Cheat Engine修改器检测方案

在游戏安全对抗过程中&#xff0c;有不少外挂的实现基于对游戏内存模块进行修改&#xff0c;这类外挂通常会使用「内存修改器」。 据FairGuard游戏安全数据统计&#xff0c;在游戏面临的众多安全风险中&#xff0c;修改器的占比高达16% 。如此高的占比&#xff0c;修改器的危害…

血糖仪_智能便携式血糖检测仪定制_基于联发科MTK8788血糖仪方案

糖尿病早期通常没有明显的症状&#xff0c;因此很难自己意识到自己已经进入高血糖状态。而且&#xff0c;到医院进行检查需要挂号、门诊和排队等步骤&#xff0c;不仅费时费力&#xff0c;对于父母来说&#xff0c;频繁去医院检查是不现实的&#xff0c;也不舍得这样做。因此&a…

maven-assembly-plugin 自定义打包

我想把input文件夹给打包进去 pom文件 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><executions><execution><!-- 配置执行器 --><i…

vue2 百度地图实现 车在线路上移动 BMap、BMapGL

文章目录 效果BMap 实现vue2 中BMap实现vue2 中使用BMapGL实现 参考文章&#xff1a; 百度地图API实时画出动态运行轨迹&#xff08;一条行驶轨迹&#xff09;&#xff0c;车头实时指向行驶方向&#xff0c;设置角度偏移 下文中可能用到的图片统一放在上面&#xff0c;自取。 …

Halcon threshold_sub_pix (Operator)

read_image(Image,fabrik) threshold_sub_pix(Image,Border,35) dev_display(Border)Image是输入的原始图像&#xff0c;Threshold是设定的阈值&#xff0c;Width和Height是像素值计算区域的大小&#xff0c;ThresholdedRegion是经过分割后得到的二值化结果。 在对图像进行二值…

深眸科技以机器视觉高性能优势,为消费电子行业提供优质解决方案

机器视觉技术近年来发展迅速&#xff0c;基于计算机对图像的处理与分析&#xff0c;能够识别和辨别目标物体&#xff0c;被广泛应用于人工智能、智能制造等领域。 机器视觉凭借着高精度、高效率、灵活性和可靠性等优势&#xff0c;不断推进工业企业生产自动化和智能化进程&…

Anaconda安装教程及多次安装失败原因

Anaconda下载网址 本教程包含两部分&#xff1a;安装教程和多次安装Anaconda导致的失败原因分析 Anaconda安装包官网下载链接 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b5be0deb0aef4a81a594df79ddc1cc96.png#pic_center 安装 按以下步骤安装 红色波浪…

UEC++ 探索虚幻5笔记 day11

虚幻5.2.1探索 项目目录探索 C工程一定不能是中文路径&#xff0c;中文项目名&#xff0c;最好全部不要用中文&#xff0c;蓝图项目可以是中文浅浅创建一个空项目&#xff0c;讲解一下之前UE4没有讲解的项目目录文件的分布组成 .vs&#xff1a;文件夹一般是项目编译缓存文件夹…

一维相位解包裹

一维相位解包裹 本文首先介绍最简单的一维的位相解包裹算法。设W是包裹运算符&#xff0c;中是解包裹位相&#xff0c;是包裹的位相。则一维位相解包裹可表示为&#xff1a; 解包裹就是要选取正确的k,满足&#xff1a; 两个相邻像素位相的差值如下&#xff1a; 由式(2-1)和式(2…

C语言——2048完整版

2048是一个简单又有趣的小游戏&#xff0c;相信大家都接触并了解过&#xff0c;那如何通过代码来实现他呢&#xff1f;下面就让我们来一起看看。 目录 1、头文件 2、主函数 3、 StarGame 4、GetNum 5、Show 6、Picture 7、GetButton 8、MergeLeft 9、MergeUp 10、MergeR…

Android平板还能编程?Ubuntu本地安装code-server远程编程写代码

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以&#xff0c;这里以VMwhere ubuntu系统为例 下载code server服务,浏览器…

[RK-Linux] 移植Linux-5.10到RK3399(四)| 检查HDMI配置与打开内核LOGO显示

文章目录 一、HDMI二、VOP三、显示内核LOGO一、HDMI RK3399 的 HDMI 接口如图: datasheet 介绍: HDMI 接口各个引脚的作用如下: 接口标签作用HDMI_TX0P HDMI_TX0PA差分信号线,用于传输 HDMI 通道 0 的正向数据HDMI_TX0N HDMI_TX0NA

JavaWeb-Tomcat

1. Web服务器 web服务器由硬件和软件组成&#xff1a; 硬件&#xff1a;计算机系统软件&#xff1a;计算机上安装的服务器软件&#xff0c;安装后可以为web应用提供网络服务。 常见的JavaWeb服务器&#xff1a; Tomcat&#xff08;Apache&#xff09;&#xff1a;应用最广泛的…

数据结构 | 查漏补缺之求叶子结点,分离链接法、最小生成树、DFS、BFS

求叶子结点的个数 参考博文&#xff1a; 树中的叶子结点的个数 计算方法_求树的叶子节点个数-CSDN博客 分离链接法 参考博文 数据结构和算法——哈希查找冲突处理方法&#xff08;开放地址法-线性探测、平方探测、双散列探测、再散列&#xff0c;分离链接法&#xff09;_线性…

如何选择性能测试工具?ab和其它工具的对比分析!

性能测试是保证应用程序高效可靠的重要手段之一&#xff0c;在进行性能测试时&#xff0c;选择合适的性能测试工具非常重要。应当根据测试需求来选择适合的测试工具&#xff0c;本文将会详细介绍ApacheBench&#xff08;简称ab&#xff09;和其他性能测试工具的区别以及如何选择…

Peter算法小课堂—贪心算法

课前思考&#xff1a;贪心是什么&#xff1f;贪心如何“贪”&#xff1f; 课前小视频&#xff1a;什么是贪心算法 - 知乎 (zhihu.com) 贪心 贪心是一种寻找最优解问题的常用方法。 贪心一般将求解过程分拆成若干个步骤&#xff0c;自顶向下&#xff0c;解决问题 太戈编程第…