自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简谈TCP——确认应答、超时重传

一、TCPTCP全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制;1.TCP格式TCP报头各部分意义:(1)16位源端口号和16位目的端口号:(各占两个字节)表示数据从哪个进程来,到哪个进程去(2)32位序号:占4字节。序号范围是0~2^32-1。TCP是面向字节流的,TCP连接中传送的字节流中的每个字节都按顺序编 号。整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值指的

2020-10-11 13:25:28 1161

原创 二叉搜索树、AVL树、RBtree(红黑树)

一、二叉搜索树1.二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树2.二叉搜索树的基本操作(1)二叉搜索树的查找若根节点不为NULLa.如果根节点的值等于要查找key,则返回true;b.如果根节点的值大于要查找key,则在其左子树查找;c.如果根节点的值小于要查找key,则在其右子树查找;否则返回false

2020-08-21 16:03:30 244

原创 简谈引用以及inline函数

一、引用1.引用概念:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间2.引用特性引用在定义时必须初始化一个变量可以有多个引用引用一旦引用一个实体,再不能引用其他实体3.引用和指针的区别在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间,而在底层实现上实际是有空间的,因为引用是按照指针方式来实现的。引用和指针的不同点:引用在定义时必须初始化,指针没有要求引用在初始化时引用一个实体后,就不能

2020-08-15 16:51:27 249

原创 vector和list的区别

一、底层实现1.vector的底层实现是顺序表,在内存中是一串连续的空间2.list的底层实现是带头节点的双向循环链表,在内存中不是一串连续的空间二、随机访问1.vector支持随机访问,通过下标精准定位到一个元素,访问元素的时间复杂度是O(1);2.list不支持随机访问,想要访问某一个元素只能遍历整个链表,访问元素的时间复杂度为O(N);三、插入和删除1.vector的插入和删除的效率低,因为在每次的删除或插入(除了尾插和尾删)都需要移动元素,时间复杂度为O(N)。由于vector的特性,

2020-08-14 18:18:03 737

原创 简谈多态

一、多态的概念1.通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。2.定义:多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。二、多态的构成条件1.必须通过基类的指针或引用调用虚函数2.被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写3.虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的返回值类型、函数名字、参数列表完全相同),称子类的虚函数重写了基类的虚函数。4.虚函数重写的两个例外:

2020-08-12 19:23:37 157

原创 简谈vector的底层实现

一、vector 概述vector的数据安排方式和操作方式与array十分相似。两者的唯一区别是array是静态空间,空间一旦配置就无法改变,如果一定需要改变,需要用户自己重新开辟一个新的大小空间,然后原有空间上的数据一 一拷贝到新的空间,然后将原有空间释放掉。而vector是一个动态空间,在元素的不断加入的过程中,如果空间满了,它会自行扩充空间。vector实现的关键技术在于其对大小的控制以及重新配置时的数据移动效率。二、vector的实现原理vector定义了三个指针start(表示目前使用空

2020-08-11 17:54:22 2538

原创 C语言基础1

一、数据类型数据类型名长度(32位)长度(64)char1字节1字节short2字节2字节int4字节4字节long4字节8字节long long8字节8字节float4字节4字节double8字节8字节size_t4字节8字节ssize_t4字节8字节...

2020-08-06 22:47:30 135

原创 Linux进程概念

一、冯诺依曼体系结构输入单元:包括键盘、鼠标,扫描仪、写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等这里的存储器是指内存不考虑缓存情况,这里的CPU能切只能对内崔进行读写,不能访问外设外设要输入或输出数据,也只能写入内存或者从内存中读取二、进程1.概念:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本...

2019-12-18 11:41:49 170

原创 初步了解vector

一、vector的介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是...

2019-12-16 20:34:41 191

原创 初步了解list容器

一、list的介绍1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。4. 与其他的序...

2019-12-15 20:27:12 111

原创 初识C++

一、C++的关键字asmdoifreturntrycontinueautodoubleinlineshrottypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticuni...

2019-10-31 18:01:18 212

原创 初步接触Linux

一、Linux下一切皆文件1.文件的类型:(1)普通文件 :第一个字符为 -(2)目录文件: 第一个字符为 d(3)字符设备: 第一个字符为 c(4)块设备文件: 第一个字符为 b(5)链接文件: 第一个字符为 l(6)管道文件: 第一个字符为 p(7)套接字文件 :第一个字符为 s2.访问文件的权限:linux中文件的权限分为 读 (r)写 (w)执行(x)每个文件可分为3...

2019-09-28 14:10:43 133

原创 用C语言实现判断一个数是否为完美数

完美数的概念: 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。思路1: 我们找到所输入的数字X的所有真因子然后在将所有因子加起来与原先所输入的值进行比较,相等则为完美数,否则不是。代码:int checkPerfectNumber(int num){ int i = 0; int sum = 0; f...

2019-09-09 17:41:36 6417

原创 2的幂

题目:从键盘接受一个数字,判断这个数字是否为2的次方例如:1 = 2^0 函数返回 13 不为2的次方 则返回 0思路分析:将这个某个数转换为2进制,我们会发现如果这个数为2的幂,其二进制表达式中只有一个1,否则其二进制表达式中不止一个1。根据这个特性得出 这个数与上(&)这个数减一的值为0的时候为2的幂。代码实现:int isPowerOfTwo(int n){ retu...

2019-09-04 13:09:09 298

原创 结构体模拟实现通讯录

一、通讯录的功能:添加联系人信息删除指定联系人信息查找指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人修改联系人二、思想:分别封装7个函数来实现上述功能首先我们定义结构体PersonInfo里面包含联系人的信息(姓名、性别、年龄、电话、地址)然后再定义一个Contact结构体里面包含联系人PersonInfo和使用个数usedSize。 typedef s...

2019-06-24 11:40:57 416

原创 冒泡排序

1.功能:将无序的数列,排列成有序的2.思想:运用循环两两比较数组中的每一个元素(这里假设升序)前者大的交换,在循环完一次后判断他是否有交换,有的话继续排序,没有的话直接跳出循环,结束排序。3.代码:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include<stdlib.h>void BubbleS...

2019-06-21 13:46:10 108

原创 初步了解指针

在计算机科学中,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。1.字符指针:(char *)指的是指向的内存单元中储存的是字符类型的数据...

2019-06-21 13:32:39 113

原创 模拟实现字符串库函数

一、长度不受限制的字符串函数1.strcat:(1)函数功能:实现两个字符串的连接(2)思想:首先遍历目标字符串,找到‘\0’的地址,然后将资源字符串通过指针一次一次的拼接在目标字符串后面,直到指针走到资源字符串的‘\0’;(3)代码:char *Mystrcat(char *strDestination, const char *strSource){ char *p = s...

2019-06-20 14:05:11 187

原创 字符串的旋转

一、字符串逆转1.思想:首先定义一个逆转字符串函数reverse(char *left, char *right)输入你想要旋转的字符个数,然后将要旋转的字符通过reverse()逆转再将不需要旋转的字符串通过reverse()逆转最后将整个字符串进行逆转实现所需功能2.实例:字符串为 ABCDEF 逆转字符串个数为2(1) 将AB逆转为BA(2) 将CDEF逆转为FED...

2019-06-13 19:46:22 436

原创 练习

1.找不同:#define _CRT_SECURE_NO_WARNINGS 1#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){int arr[] = { 1, 3, 2, 5, 5, 3, 2, 7, ...

2019-06-03 10:45:56 129

原创 扫雷

game.h //定义game.c中的函数# define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#define ROW 9#define COL 9#define ROWS ROW...

2019-05-24 20:52:12 163

原创 跳水问题、、凶杀案、、杨辉三角

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。思路定义A、B、C、D、E五个变量让他们分别从一到五循环在循环内判断因为每位选手都说对了一半所以(B == 2) + (A == ...

2019-05-23 16:54:18 203

原创 二进制相关代码

1.找出两个数在二进制表示下有多少位不同#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int count = 0;int count_one_bits(int x){if (x != 0){count++;count_one_bits(x & (x - 1...

2019-05-22 22:52:39 660

原创 三子棋

game.h: //创建一个头文件进行函数的声明#define ROW 3#define COL 3 //ROW 和 COL 表明棋盘的大小#define ROWS = ROW + 1;#define COLS = COL + 1;void setboard(char[ROW][COL], int row, int col); //棋盘的初始化void Display(...

2019-05-21 20:17:56 285

原创 猜数字、输入密码、折半查找

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void menu(){printf("******************\n");printf(" 1.play ***\n");printf(" 2.exit **********\n");}void game()...

2019-05-04 20:25:45 191

原创 转换大小写

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>int main(){char arr[] = { 0 };int i = 0;printf(“please input a ...

2019-05-04 20:22:23 161

原创 水仙花数

#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){int i = 0;int remainder = 0;int b = 0, s = 0, g = 0;for (i = 100; i <= 999; i++){b = i / 100;remainder = i...

2019-04-25 19:48:44 341

原创 千里之行始于足下

大学生活即将过半,身边的人逐渐“成长”,但自己所学的知识却并没有多少。为此我希望改变自我,通过不断地学习来提高自己,也希望能通过写博客来记录自己每天的成长。曾听过一篇演讲——人有四大支柱(belonging ,purpose,transcendent,storytelling),超然或许是我无法达到的境界。但我希望能找到属于我的归属、实现我的目标(进入适合自己的互联网公司)、在未来能够讲诉属于我...

2019-04-25 19:34:13 276

空空如也

空空如也

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

TA关注的人

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