自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员的规则

成长的历史

  • 博客(144)
  • 收藏
  • 关注

原创 FAT32文件系统学习

FAT32文件系统

2023-04-16 15:43:46 3098 1

原创 gdb检测死锁

gdb调试死锁

2022-09-26 21:45:40 344

原创 两个栈实现一个队

两个栈实现一个队

2022-07-17 11:19:08 192

原创 链队的实现

链队

2022-07-17 11:16:55 151

原创 顺序队的实现

顺序队

2022-07-17 11:15:50 56

原创 链栈的实现

链栈

2022-07-17 11:14:23 104

原创 顺序栈的实现

顺序栈

2022-07-17 11:13:08 93

原创 链表练习题

链表

2022-07-17 10:58:47 76

原创 双循环链表

双循环链表

2022-07-17 10:53:40 137

原创 单循环链表

单循环链表

2022-07-17 10:51:51 703

原创 双链表的实现

双链表

2022-07-17 10:50:25 100

原创 单链表的实现

单链表

2022-07-17 10:47:54 73

原创 顺序表的实现

顺序表

2022-07-16 11:29:02 55

原创 练习题(5)

练习题

2022-07-16 11:17:54 49

原创 练习题(4)

练习题

2022-07-16 11:14:26 62

原创 练习题(3)

练习题

2022-07-16 11:13:16 60

原创 练习题(2)

练习题

2022-07-16 11:11:47 57

原创 练习题(1)

练习题

2022-07-16 11:10:11 59

原创 文件操作(8)

int n = 5; int m = 10; int* p1, * p2, * p3; p2 = (int*)malloc(sizeof(int) * n); if (nullptr == p2)exit(EXIT_FAILURE); for (int i = 0; i < n;i++) { p2[i] = i + 10; } int* newdata = (int*)realloc(p2, sizeof(int) * m); if (newdata == nullptr...

2022-07-16 10:59:16 85

原创 Redis-keys命令

keys命令:DEL KEY:该命令用于在key存在时删除keyDUMP KEY:序列化给定key,并返回被序列化的值序列化:把对象转化为可传输的字节的序列过程称为序列化反序列化:把字节序列还原为对象的过程称为反序列化为什么需要序列化?序列化的最终目的是为了对象可以跨平台传输,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而IO支持的数据格式就是字节数组。因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回

2022-05-15 17:50:00 2508

原创 Redis的安装及基本数据类型

这里介绍的是Linux平台的安装教程打开虚拟机终端,首先输入下列命令:wget http://download.redis.io/releases/redis-6.0.8.tar.gz如图:然后再此目录下就会有一个redis的压缩包:解压此压缩包:切换到此目录下:执行make(需要稍等一会儿):切换到src目录下,执行redis-server,启动服务器端:这里redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用...

2022-05-14 17:17:41 268

原创 数据库的基本操作

数据库的基本操作数据库的登录及退出退出数据库,以下三种方式都可以:exitquitctrl+d查看所有数据库显示数据库版本显示时间创建数据库查看创建数据库的语句注意:在创建数据库或查看创建数据库语句时,database没有s。查看当前使用的数据库当选择了某个数据库时,显示如下:查看当前用户使用某个数据库删除数据库数据表的基本操作查看当前数据库中的所有表创建表创建表的命令:...

2022-05-12 18:47:38 15833

原创 数据库介绍及安装

数据库介绍数据库概念数据库:简而言之,存放数据的仓库,它是一个按数据结构来存储和管理数据的计算机软件系统。数据库管理系统:是数据库系统的核心组成部分,主要玩成对数据库的操作与管理功能,例如实现数据的存储、修改、删除,及数据库用户的管理,权限管理等。RDBMS:关系数据库管理系统SQL:结构化查询语言mysql数据库是一种C/S模型(即客户端和服务器模型),客户端通过用户名,密码登录连接服务器。连接成功才可以进行数据可的操作,即增删改查。如图:数据库分类关系型数据库..

2022-05-10 23:24:05 317

原创 Linux下的线程同步方式

信号量信号量主要就是PV操作代码实现:互斥锁互斥锁就是在多线程中,当其中某一线程需要对关键代码访问时,需要先获得一个锁,等访问完代码之后再释放这个锁,防止同一时间其它线程访问这段代码。读写锁条件变量...

2022-05-06 20:32:11 208

原创 汇编复习题-微信计算机概述

一、单向选择02.将一个十进制数215转换成二进制是(c )。﹝A﹞11101010B ﹝B﹞11101011B ﹝C﹞11010111B ﹝D﹞110101110B02. 在一个8位二进制机器数中,补码的表示范围是(B)。﹝A﹞-127+127 ﹝B﹞-128+128 ﹝C﹞-127+128 ﹝D﹞-128+12703.十进制数82的压缩BCD码表示为(B)。﹝A﹞00101000B ﹝B﹞10000010B ﹝C﹞01010010B ﹝D﹞0010010...

2022-05-03 00:23:44 932

原创 单例模式介绍

目录引入单例模式概念单例模式的设计类型饿汉式创建对象懒汉式创建对象懒汉式的线程安全懒汉式单例模式所造成的内存问题引入设想一下,你现在正在使用编译器写代码,此时你点工具箱,它会显示出来一个功能界面,你再点一下,他就会关闭,不会再显示出另一个界面。如图:它永远不会是这样:不论你点多少次,它只会显示一次。这其实就是一个单例模式。单例模式概念单例模式是指一个类有且仅有一个实例,并提供一个可以访问它的全局访问点,即:在内存中仅会创建一次对象。就像上.

2022-05-02 18:18:24 620 2

原创 万维网介绍

万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所,英文简称Web,也是我们常说的Web。万维网用链接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动的按需获取丰富的信息。如图:这么看可能还不是很明了,那么假设你现在正在看我这篇博客,我这篇博客里边有一个连接,点击这个链接,是可以跳转到另一篇博客的,那么我这边博客就是一个站点,跳转的那篇博客就是另一个站点,如图:在实际的万维网中,每个站点可能相隔数千公里,但都必须连接在互联网上。每一个万维网站点都存放

2022-04-28 08:01:19 3464

原创 HTTP协议

在介绍http协议之前,我们有必要先了解一下万维网HTTP的操作过程概述:http协议是超文本传输协议,除了文字以外,它还可以传输声音、图像、文本等各种多媒体文件。http协议定义了万维网客户进程怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,http是面向事务的应用层协议。所谓事务就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,也就是说,要么所有的信息都交换完成,要么一次交换都不进行。万维网的工作过程如图:关于上图作以下几.

2022-04-27 22:13:05 2049 1

原创 UDP协议及编程

UDP协议UDP是无连接的,即发送数据之前不需要连接,因此减少了开销和发送数据之间的时延。UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表UDP是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。也就是说UDP的报文长度是由应用进程来决定的,若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率;反之,若报文太短,UDP把它交给IP层后,会使IP数据报的首部的相对长度太长,这也会降低IP层的效率,所

2022-04-27 13:05:02 1080

原创 TCP可靠传输-运输连接管理

TCP是面向连接的协议。运输连接及=是用来传送TCP报文的,TCP运输连接的建立和释放是每一次面向李安宁街的通信中必不可少的过程。因此,运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。在TCP连接建立过程中要解决一下三个问题:要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。 能够对运输实体资源(缓存大小、连接表中的项目等)进行分配。TC+P连接的建立采取

2022-04-26 23:51:58 714

原创 TCP编程

面试官:描述一下TCP的编程流程?答:TCP服务器端编程的一般步骤是: TCP客户端编程的一般步骤是:1.创建一个socket,用函数socket(); 1.创建一个socket,用函数socket();2.设置socket属性 ......

2022-04-25 23:40:19 3658 3

原创 二叉树的镜像

题目:请完成一个函数,请函数输出它的镜像例如:思路:看见此题目首先想到的应该是二叉树的层次遍历,而且是反向的。但是希望的是在函数结束之后,只返回根节点,就可实现这样的效果,那么我们就不能当做简单的遍历了,我们需要在原二叉树上交换各个节点的左右孩子。因此这道题可以用递归解决代码实现:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; .

2022-04-24 15:32:43 1053

原创 数的子结构

题目描述:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。思路:关于二叉树的大部分题目其实都是可以用递归的方法解决的,所以看到此题首先要想到递归此题共有三种情况,如下:当前A的根节点与B的根节点相等,直接采用递归的方式判断各个节点的值是否相等就好; 当前A的根节点与B的根节点不相等,寻找此节点的左孩子,判断是否与B的根节点相等,当找到相等的那个点时,以此点为根节点,依次判断与B对应的各个节点是否相等;

2022-04-23 23:30:28 1296

原创 TCP可靠传输-拥塞控制

拥塞控制原理看到拥塞这个词,我们首先会想到什么呢?在生活中,我们几乎每天都能听到早高峰、晚高峰引起的交通堵塞。那么引起堵塞的原因是什么呢?你肯定会说是这个时间段车流量过大,超出道路所能承受的车流量范围了。这是完全正确的,这里道路是一种资源,所有的车都需要这个资源,当需求大于可用资源时,自然就会引起堵塞。那么在网络中我们提到的拥塞也就是这个意思。网络中对拥塞的定义是:在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能下降了。这种情况就叫拥塞。这是很好理解的,条件关

2022-04-20 20:46:20 5350

原创 TCP可靠传输-流量控制

在进行数据传输时,我们总希望在最短的时间内完成数据的发送,,但如果发送方发送的太快,接收方来不及接收,就会造成数据丢失。而流量控制就是为了让发送方保持一个合适的发送速率,不要太快,要让接收方来得及接收。流量控制其实就是接收窗口变化的过程,这里直接通过图解来稍加说明:如上图,接收方进行了三次流量控制。此时有一个问题,我们看到,在最后一次流量控制时,接收窗口已经满了,不能再接收数据了,这个时候只有当接受端再重新发出一个新的窗口值为止,但是,如说重新发出的这个窗口信息丢失了,那此时接收方和发送

2022-04-19 23:44:12 407

原创 TCP可靠传输-超时重传时间的选择

前面已经讲到,TCP的发送方式在规定的时间内没有收到确认就要重传已发送的报文段。这种重传的概念是很简单的,但重传时间的应该设置多少合适呢?这是TCP最复杂的问题之一如果把超时重传时间设置的过长,就会引起很多报文段不必要的重传,使网络负荷增大。但若把超时重传时间设置的过长,则又使网络的空闲时间增大,降低了传输效率。TCP采用了一种自适应算法,它记录一个报文段发出得到时间,以及收到相应的确认的时间,这两个时间之差就是报文段的往返时间RTT(又称为平滑往返时间)。TCP保留了RTT的一个加权平均往返时间R

2022-04-19 21:18:58 3377

原创 TCP可靠传输-滑动窗口

在上一篇叙述停止等待协议时,我们提到了信道利用率这个概念,那么什么是信道利用率呢?信号利用率其实就是在指定时间能能传输的数据分组的多少,我们当然是希望在保证可靠传输的情况下,使用最短的时间传输完数据。但是在使用停止等待协议时,若要传输大量的数据,那简直太浪费时间了,如图:我们假设发送端发送数据所需的时间是Td,数据分组在信道之间往返一次所需的时间为RII,接受发送确认信息所需的时间是Ta。因为仅仅在时间Td内才是用来传送有用的数据,所以信道利用率就可以这样计算:由此可以看出,我们想提高信

2022-04-19 15:48:53 3557

原创 TCP报文段

TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中个字段的作用。因此,只有弄清TCP首部个字段的作用才能掌握TCP的工作原理。TCP前20个字节使固定的,后边有4n个字节使根据需要而增加的选项。因此TCP的最小长度是20字节源端口和目的端口:各占两个字节,分别写入源端口号和目的端口号。TCP的分用功能也是通过端口实现的。序号:占四个字节(32位)。TCP是面向节流的,在一个TCP连接中传送的字节流中的每一个字

2022-04-18 23:21:46 4501 2

原创 TCP的可靠传输-停止等待协议

TCP是可靠的传输协议,停止等待协议是保证TCP可靠传输的其中一种措施正常传输正常的TCP通信是这样的:分析:在正常传输时,发送端发每发送一段数据,接受端就要确认一下并给出答复(就像你给喜欢的人表白一下,你问对方能做你对象吗,对方答应了,那么你才可以说接下来的话)出现差错如果对方没有应答,那可能就是下面这种情况:当对方还没有答应你时,你在说我带你去吃饭,是不是会被别人当傻子呀,这个时候,你稍等一下,再重新问一次,当对方答应了,你才能说带她去吃饭。分析:在进行数据传输的时候

2022-04-17 23:48:45 2586

原创 初识TCP

TCP是什么?答:TCP是TCP/IP体系中非常复杂的一个协议。它具有以下最主要的特点。TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。也就是说,引用进程之间的通信就像是在通电话:通话前得先拨号建立连接,通话结束后要挂机释放连接每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的,就像通话,你再同一时间只能给一个人打电话或者接电话,不可同时接听两个电话或者同时打两个电话。TCP提供可靠交付的

2022-04-17 22:13:33 576

空空如也

空空如也

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

TA关注的人

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