自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 129-二叉树的前中后序遍历(含递归和非递归遍历)

思路:将根节点先入栈,判断栈是否为空,不为空,获取栈顶元素并出栈,判断右左孩子是否为空,不为空先将右孩子入栈,再将左孩子入栈.出栈的时候就是先左后右。二叉树的非递归是借助栈来实现。

2023-10-16 13:21:27 207

原创 128-根据给定的字符串,建立二叉树

根据给定字符串str = "ABC##DE##F##G#H##"建立对应的二叉树(其中‘#’代表空)

2023-10-16 12:45:37 435

原创 127-Linux_Redis

Redis是一个开源的内存数据存储库,支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。它提供了快速读写数据的能力,并允许将数据持久化到磁盘上,以保障数据不会因服务器故障而丢失。

2023-05-17 21:20:06 487

原创 126-Linux_git安装及使用

Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发、协作与维护中。它最初由Linus Torvalds于2005年创造,旨在为Linux内核开发提供高效、可靠、易用的版本控制方案。git本地有三个工作域:工作区(working directory), 暂存区(stage/index), 资源库(repository)。如果再算上远程服务器上的git仓库(remote directory)就可以分为四个工作域。

2023-05-11 21:13:13 873

原创 125-Linux_守护进程

Linux守护进程也称为后台进程,是一种无需用户交互、在后台运行的进程。它们通常不与终端交互,并且一旦启动就一直在后台运行,直到系统关闭或手动停止为止。通过以上介绍,我们了解了Linux守护进程的定义、创建和管理方法。要创建一个可靠的守护进程,需要遵循一定的规则。管理守护进程则需要熟悉一些相关的命令。最后需要注意的是,在使用守护进程时,一定要保证程序的正确性和安全性。

2023-05-10 15:04:07 453

原创 124-Python_百钱买百鸡:一只公鸡5 元钱,一只母鸡 3 元钱三只小鸡1元钱现在要用 100 元钱买 100 只鸡,问公鸡、母鸡、小鸡各多少只?请利用列表推导式解决该问题。

百钱买百鸡:一只公鸡5 元钱,一只母鸡 3 元钱三只小鸡1元钱现在要用 100 元钱买 100 只鸡,问公鸡、母鸡、小鸡各多少只?请利用列表推导式解决该问题。

2023-05-09 22:21:27 925

原创 123-Python_,编写程序,给定列表[1,9,8,7,6,5,13,3,2,1],先输出原列表,删除其中所有奇数后再输出。请利用列表推导式解决该问题。

编写程序,给定列表[1,9,8,7,6,5,13,3,2,1],先输出原列表,删除其中所有奇数后再输出。请利用列表推导式解决该问题。

2023-05-09 22:18:26 428

原创 122-Python_编写程序,将由 1,2,3、4 这4 个数字组成的每位数都不相同的所有三位数存入一个列表中并输出该列表。请利用列表推导式解决该问题。

编写程序,将由 1,2,3、4 这4 个数字组成的每位数都不相同的所有三位数存入一个列表中并输出该列表。请利用列表推导式解决该问题。

2023-05-09 22:12:24 1344

原创 121-Python_输人 5 个整数放到列表 listl 中.输出下标及值,然后将列表 listl 中大于平均值的元素组成一个新列表 list2,输出平均值和列表 list2。请利用列表推导式解决该

输人 5 个整数放到列表 listl 中.输出下标及值,然后将列表 listl 中大于平均值的元素组成一个新列表 list2,输出平均值和列表 list2。请利用列表推导式解决该问题。

2023-05-09 22:10:34 1350

原创 120-Python_某企业为职工发放奖金:如果入职超过 5 年且销售业绩超过 15 000 元的员工奖金比例为 0.2;销售业绩超过 10 000 元的员金比为 .15: 销售业绩超过 5000 元

某企业为职工发放奖金:如果入职超过 5 年且销售业绩超过 15 000 元的员工奖金比例为 0.2;销售业绩超过 10 000 元的员金比为 .15: 销售业绩超过 5000 元的员工,奖金比例为 0.l:其他奖金比例为 0.05。如果是人职不超过 5 年,且销售业绩超过4000 的员工,奖金比例为 0.045;输入入职年限、销售业绩,输出奖金比例、奖金,并将奖金存放到列表中并输出该列表。人职年限(为整数)输入-1的时候结束输人,为了简化所有输人均假定正确,不需判断小于 0 的情况。

2023-05-09 22:08:16 675

原创 119-C++强制类型转换

C++提供了4种类型的强制类型转换,分别是 static_cast、const_cast、reinterpret_cast 和 dynamic_cast。

2023-05-09 20:34:38 526

原创 118-Linux_数据库_索引

索引是一种特殊的文件,它包含着对数据表里所有记录的引用指针。简单讲,就像一本书前面的目录,能加快查询速度。索引是帮助mysql高效获取数据的数据结构索引存储在文件系统中索引的文件存储形式与存储引擎有关索引文件的结构

2023-05-07 19:31:48 399

原创 117-Linux_数据库_事务

事务就是一组原子性的 SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。例如:假设一个银行的数据库有两张表:支票(checking)表和储 (savings)表。现在要从用户Jane 的支票账户转移200 美元到她的储蓄账户,那么需要至少三个步骤 :1.检查支票账户的余额高于 200 美元。

2023-05-07 16:53:09 422

原创 116-Linux_数据库_视图

视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存放数据,它的数据来自定义视图时使用的基本表,并且是在使用视图时动态生成的。

2023-05-07 16:36:42 111

原创 115-Linux_C语言访问mysql及操作数据库

C语言访问mysql。

2023-05-06 19:00:40 692

原创 114-Linux_mysql基本操作

查看当前使用的是哪个数据库 :select database();如下图为null代表没有选择使用的数据库。登录到mysql后,里面创建有很多数据库,选择要使用的某一个数据库: use 数据库名。create database 数据库名 charset=utf8;查看当前登录的是哪个用户:select user();show create database 数据库名。删除数据库: drop database 数据库名。要注意所有sql语句结尾都有 ‘;create database 数据库名。

2023-05-06 18:47:10 664

原创 113-Linux_安装c/c++开发库及连接mysql数据库

安装开发c/c++的库,命令:==apt install

2023-05-06 18:24:55 787

原创 112-Linux_mysql数据库的安装

数据库:是存放数据的仓库,它是一个按数据结构来存储和管理数据的计算机软件系统。数据库管理系统: 是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,例如实现数据的存储,查询,修改,删除,及数据库用户的管理,权限管理等。RDBMS: 关系数据库管理系统(Relational Database Management System)。SQL: 结构化查询语言(Structured Query Language)

2023-05-06 18:11:53 749

原创 111-Python_某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额≥10万 元,为铂金卡客户(platinum); 如果消费总额≥5万元且<10万元,为金卡客户(gold);

某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额≥5万元且

2023-05-05 19:47:21 712

原创 110-Python_请用字典编程,已知某班学生的姓名和成绩如下:

输出这个班的学生姓名和成绩,并求出全班同学的人数和平均分并显示。

2023-05-05 19:46:02 2645 1

原创 109-Python_利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信 息并能继续输入,然后计算该列表的和与平均值

利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信 息并能继续输入,然后计算该列表的和与平均值。

2023-05-05 19:44:27 1391

原创 108-Python_已知10个学生的成绩为68、75、32、99、78、45、88、72、83、78,请将成绩存放在列表 中,请对其进行统计,输出优(100~90)、良(89~80)、中(79~60

已知10个学生的成绩为68、75、32、99、78、45、88、72、83、78,请将成绩存放在列表 中,请对其进行统计,输出优(100~90)、良(89~80)、中(79~60)、差(59~0)4个等级的 人数。

2023-05-05 19:42:39 1615

原创 107-Python_从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和

从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和。

2023-05-05 19:41:19 2526

原创 106-C++_final和override

override 关键字确保在派生类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,还可以防止因疏忽把本来想重写基类的虚函数声明成重载。当在类定义中使用时,final 指定此类不能在另一类的定义中的 基类说明符列表 中出现(换言之,不能派生于它),否则程序非良构(生成编译时错误)。如果修饰函数,final只能修饰虚函数,并且要放到类或者函数的后面。当在虚函数声明或定义中使用时,final 说明符确保函数为虚并指定它不能被派生类覆盖,否则程序非良构(生成编译时错误)。

2023-05-05 17:35:09 461

原创 105-Linux_Libevent库的安装与使用

Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。

2023-05-02 18:54:23 926

原创 104-Linux_select,poll,epoll的区别

由于每次 select 和 poll 调用都返回整个用户注册的事件集合(其中包括就绪的和未就绪的),所以应用序索引就绪文件描述符的时间复杂度为 0(n)epoll 则采用与 select 和 pol1 完全不同的方式来管理用户注册的事件。从实现原理上来说,select 和 poll 采用的都是轮询的方式,即每次调用都要扫描整个注册文件描述符集合,并将其中就绪的文件描述符返回给用户程序,因此它们检测就绪事件的算法的时间复杂度是 0(n)。epoll_wait 则不同,它采用的是回调的方式。

2023-05-02 15:51:51 47

原创 103-Linux_I/O复用方法之epoll

epoll 是 Linux 特有的 I/O 复用函数。它在实现和使用上与 select、poll 有很大差异。首先,epoll 使用一组函数来完成任务,而不是单个函数。其次,epoll 把用户关心的文件描述符上的事件放在内核里的一个事件表中。从而无需像 select 和 poll 那样每次调用都要重复传入文件描述符或事件集。但 epoll 需要使用一个额外的文件描述符,来唯一标识内核中的这个事件表。

2023-05-01 16:58:33 646

原创 102-Linux_I/O复用方法之poll

timeout 参数指定 poll 的超时值,单位是毫秒,timeout 为-1 时,poll 调用将永久阻塞,直到某个事件发生,timeout 为 0 时,poll 调用将立即返回。fds 参数是一个 struct pollfd 结构类型的数组,它指定所有用户感兴趣的文件描述符上发生的可读、可写和异常等事件。它是一系列事件的按位或,revents 成员则有内核修改,通知应用程序 fd 上实际发生了哪些事件。其中,fd 成员指定文件描述符,events 成员告诉 poll 监听 fd 上的哪些事件类型。

2023-04-30 19:08:15 730

原创 101-Linux_I/O复用方法之select

select 成功时返回就绪(可读、可写和异常)文件描述符的总数。select 失败是返回-1.如果在 select 等待期间,程序接收到信号,则 select 立即返回-1,并设置 errno 为 EINTR。readfds、writefds 和 exceptfds 参数分别指向可读、可写和异常等事件对应的文件描述符集合。maxfd 参数指定的被监听的文件描述符的总数。它通常被设置为 select 监听的所有文件描述符中的最大值+1。在一段指定时间内,监听用户感兴趣的文件描述符的可读、可写和异常等事件。

2023-04-30 17:27:50 574

原创 100-Linux_I/O复用

I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。

2023-04-30 16:29:33 46

原创 99-Linux_C语言实现web服务器

【代码】99-Linux_C语言实现web服务器。

2023-04-29 18:37:55 687 1

原创 98-Linux_HTTP协议与web服务器

浏览器服务器建立连接后,如果两次以上的请求复用同一个 TCP 连接,则称之为长连接。如果浏览器发送一次请求报文,服务器回复一次应答就断开连接,下次交互再重新进行三次握手建立连接,那么就被称作短连接。使用长连接显然是更好一些,可以减少网络中的同步报文,也使得服务器的响应速度变快。

2023-04-28 10:27:10 582

原创 97-TCP为什么要有一个“TIME_WAIT“的状态

1) 可靠的终止 TCP 连接。2) 保证让迟来的 TCP 报文有足够的时间被识别并被丢弃 ;

2023-04-27 18:57:45 485

原创 96-Linux_UDP实现客户端和服务器端

recvfrom()接收数据,每次都需要传给该方法一个地址结构来存放发送端的地址。recvfrom()可以接收所有客户端发送给当前应用程序的数据,并不是只能接收某一个客户端的数据。sendto()用来发送数据,由于 UDP 是无连接的,每次发送数据都需要指定对端的地址(IP 和端口)。socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOCK_DGRAM。buff 和 len 参数分别指定写缓冲区的位置和数据长度。buff 和 len 参数分别指定读缓冲区的位置和大小。

2023-04-17 15:49:09 239

原创 95-拥塞控制

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞。所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,涉及到所有主机,所有路由器,以及与降低网络传输性能有关的所有因素。

2023-04-17 15:27:01 400

原创 94-TCP是如何使用滑动窗口进行流量控制

在 TCP 的报头中有一个字段叫做接收通告窗口,这个字段由接收端填充,是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。所以发送端就会有一个发送窗口,这个发送窗口的大小是由接收端填充的接收通告窗口的大小决定的,并且窗口的位置会随着发送端数据的发送和接收到接收端对数据的确认而不断的向右滑动,将之称为滑动窗口。

2023-04-17 15:02:14 121

原创 93-TCP连接是如何保证可靠性的

TCP 发送的报文段是交给 IP 层传送的。但 IP 层只能提供尽最大努力的服务,也就是说,TCP 下面的网络所提供的是不可靠的传输。因此,TCP 必须采用适当的措施才能使两个运输层之间的通信变得可靠。

2023-04-16 22:35:47 60

原创 92-TCP三次握手及TCP四次挥手

TCP 协议提供的是:面向连接、可靠的、字节流服务。首先我们要明白服务器端为什么将ACK和FIN分开发送,原因就是只有服务器端close以后才会给客户端发送FIN,所以只要服务器端发送ACK的同时服务器端close就可以将ACK和FIN一起发送.第二次握手服务器端收到请求以后也会给客户端发送一个自己的SYN并且序号值seq=j,同时会发送一个ACK(是否确认号是否有效)且ACK的值会在客户端发送过去的seq的之上加一;第一次握手客户端给服务器端发送一个SYN(建立连接的请求)并且它的序号值seq=i;

2023-04-15 17:42:16 643 1

原创 91-Linux_多进程/多线程处理服务器并发

多进程/多线程处理服务器并发是为了解决recv阻塞问题;没有多线程多进程处理服务器并发时,只能有一个客户端与其进行通信,当有第二个连接服务器时,就会阻塞在recv阶段,所以引入多进程/多线程处理服务器并发就是为了解决recv的阻塞;

2023-04-15 15:51:20 260

原创 90-Python_编写程序,按公式s=12+22+3+···十n求累加和不超过1000的最大项数n序运行

90-Python_编写程序,按公式s=12+22+3+···十n求累加和不超过1000的最大项数n序运行。

2023-04-14 10:43:40 838

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除