自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 顺序表和链表的实现Java

顺序表实现(Java)import java.util.Arrays;class MyArrayList { public int[] elem; public int usedSize; public static final int intCapacity = 10; public MyArrayList() { int[] elem = new int[intCapacity]; this.usedSize = 0; }

2021-11-15 14:19:18 618

原创 文件压缩项目

目的:实现一个能压缩、解压缩文件的工具什么是文件压缩本质:让文件占用的空间变小文件压缩的优点减少存储空间、传输速率更快、数据加密更安全压缩分类首先有压缩文件的不同:文本、视频、音频还分为有损压缩(解压之后相比原件损失一些信息、压缩率高)如图像文件无损压缩(解压前后并无不同)如文本文件压缩率:压缩后的大小/原件大小压缩原理方法一:专有名词改为固定短语中华人民共和国---->中国简单但是信息量很大方法二:缩短文件中重复的数据LZ77对文件中重复数据用(与上一个

2021-08-17 17:21:37 215

原创 DS-----栈和队列

栈该栈不是内存当中的栈不一样。内存中的栈是某一个内存的名字,一个内存片段。栈区这个栈是一个数据结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶栈的实现用顺序表或链表实现顺序表更简单一些若表头部为栈顶, 压栈可以用头插的方法,出栈可以用头

2021-08-05 17:52:10 282

原创 顺序表和链表的区别

顺序表空间连续,空间利用率高支持随机访问,随机访问效率很高尾插尾删效率高头插头删,中间位置插入删除效率低增容代价大(申请空间、拷贝、释放)适用于访问场景链表(双向带头)任意位置插入删除效率高,没有增容问题容易造成内存碎片,空间利用率低以结点为单位存储,不支持随机访问适用于插入删除场景...

2021-08-05 12:00:34 263

原创 DS----双链表(双向带头循环)详解和实现

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-10 16:32:58 142

原创 DS----线性表(顺序表和链表)更新

线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。我们要学会这两个数据结构对于数据的存放以及增删查改顺序表静态顺序表#define N 100typedef struct SeqList{ int arr[N];//存放元素的数组 s

2021-06-02 09:45:26 175

原创 数据结构----时间/空间复杂度

什么是数据结构?编程=算法+数据结构数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。时间复杂度与空间复杂度他们两个都是用来衡量算法效率的标准。一个高效率的算法包括运行时间短,占用内存小这两个方面我们把算法中基本操作的执行次数叫做时间复杂度用大O的渐进表

2021-05-31 17:05:35 106 1

原创 网络通信---套接字编程socket

socket套接字编程用于网络通信程序的编写,根据不同的协议写不同的通信程序,一般都是CS(客户服务器端)架构模式UDP协议:用户数据报协议特点:无连接、不可靠、面向数据报场景:实时性要求大于安全性,追求快速如:视频、音频传输TCP/IP协议:传输控制协议特性:面向连接、可靠传输、面向字节流场景:安全性大于实时性如:文件传输CS架构客户端(client):发起请求的一端服务器端(server):被动接受请求,提供服务的通信端。服务端的地址信息要提前给客户端提供且是固定的。

2021-05-15 17:45:33 489 9

原创 网络通信----基本概念

网络分类以范围局域网、城域网、广域网组网技术以太网、令牌环网IP地址每一台主机在网络中的唯一标识ipv4:uint32_t 无符号四字节整数ipv6: uint8_t ip[16] 不向前兼容技术扩展DHCP/NAT端口port在一台主机上标识一个网络通信的进程端口是一个 uint16_t 无符号2 字节整数,为了让接收方主机收到之后知道要让哪个进程处理数据一个端口只能被一个进程占用。源端IP:发送方对端IP:接收方网络通信中的数据都有五个信息(五元组):源

2021-05-15 15:26:20 158 1

原创 Linux---环境变量

定义是保存系统运行环境参数的变量(shell中),比如:颜色、路径…这个变量的存在便于环境变量的配置,还可以实现进程之间的数据通信。子进程会复制父进程的环境变量。用env命令查看环境变量信息。典型的环境变量shell:命令行解释器。它自己也是一段程序,捕捉键盘输入然后执行PATH:程序运行的默认搜索路径如ls,其实ls是一段程序,我们敲击ls能运行成功就是shell得到指令后去PATH保存的对应路径找到代码去运行。...

2021-04-19 17:26:54 63

原创 Linux---进程控制

进程什么是进程?顾名思义就是运行中的程序,在操作系统的角度,就是对运行的程序一个动态的描述,叫做pcb进程控制块。在Linux下是一个task_struct结构体来描述。用过pcb实现对程序运行调度和资源的管理。pcb中含有什么?PID进程标志符、内存指针、上下文数据、程序计数器、IO信息…怎么创建一个进程?pid_t fork(void):通过复制父进程来创建一个新的子进程进程状态...

2021-04-14 11:15:07 73

原创 C++———STL(SGI版本)

什么是STL?STL (standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,更是一个包罗数据结构与算法的软件框架。STL包含六大组件:容器、仿函数、算法、迭代器、空间配置器、配接器。STL是C++中的优秀作品,有了它的陪伴,许多底层的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快速开发。迭代器(itorator)是一种设计模式(元素访问的一种设计模式),所有容器都需要遵循相同的设计规范。好处就在于每个容器

2021-03-31 11:31:05 1223

原创 C++-------泛型编程

泛型编程在我们编程中,经常会遇到这种情况:几个函数的实现逻辑是一样的只是参数类型或个数不同。那么还要一个一个写吗?代码怕是太冗余了。C++提供了泛型编程,我们可以给编译器提供一个模板,让编译器通过不同的类型来生成对应的函数。**泛型编程:**编写与代码类型无关的通用代码,是代码复用的一种手段。模板模板是泛型编程的基础。template是模板的关键字,也可以用class,但不能用struct代替classtypename类型名关键字函数模板类模板...

2021-03-29 11:55:58 172

原创 C++------内存管理

内存申请的方式malloc:只负责申请空间,申请到的空间是一个随机值。realloc:申请空间或调整原有空间。释放是只需要释放返回的空间。calloc:申请并初始化空间(全部初始化为0)。new//申请空间 int* p = new int; //申请并初始化空间,申请了1个字节,内容为10 int* p1 = new int(10); //申请一个连续的空间,10表示元素个数,申请了40个字节,内容为随机值 int* p3 = new int[10];delete//释放

2021-03-25 16:55:54 57

原创 C++----类与对象(六个默认成员函数)

在C++中,类就相当于一个类型,类所创建的对象,就相当于一个变量。变量要初始化、销毁、拷贝等等这些操作,非自定义地类型,编译器都能自己解决这些问题。那我们自己创建的类以及成员变量呢?该怎么操作?构造函数我们要初始化一个变量 int a=10 就可以了,那么怎样能初始化一个成员变量呢?#include<stdio.h>#include<iostream>using namespace std;class Date{public: void setdate(int ye

2021-03-15 11:08:47 222

原创 C++ ——类与对象(基本介绍)

类面向过程:解决一件事情,一步一步环环相扣,通过函数调用来解决问题面向对象:以对象为单位解决问题,将一件事情分为不同的对象,靠对象的交互来完成问题为什么要有类?类是一个打包的概念。一个人有身高体重职业等等很多数据,也有吃饭睡觉很多行为。那么用类来描述人这个对象就是将他所有的特性都打包在一起。获取时就非常方便和全面类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。类的定义用struct和class都可以分开定义的话,声明放在.h文件,实现放在.

2021-03-10 17:25:49 149

原创 C++---引用与指针

引用引用概念:变量的别名,操作引用,就是在直接操作引用对象就像我们每个人有自己的本名也有自己的小名一样,引用就是变量的别名。在语法层面:他就是变量的一个别名,没有独立空间,和其引用实体共用一个内存空间在底层实现层面:引用是用指针来实现的所以他有自己的内存空间写法:实体类型 & 引用名称=实体对象引用的分类:可读可写的引用和常引用常引用:引用指向的实体不能被修改。引用的特性引用于实例对象的类型要相同引用必须初始化一个引用只能有一个实例对象,一个实例对象可有多

2021-03-09 16:51:35 171

原创 用进度条程序来看Linux中的printf函数(缓冲区)

题目:编译一个进度条程序,最终实现“—”逐渐增加初级解法:用一个字符数组来存放“-”,用循环控制打印出来,再用usleep函数减缓程序执行速度,以便于我们看清打印过程。看执行结果,“-”确实有每次都在增加,只不过打印时不应该换行。去掉换行之后运行结果显示:一下子“-”都打印出来了,而且“-”打印出来不是最终的10个,而是把每个num【i】都打印了出来,可是代码也是正确的。明明应该是循环一次从头打印一次,最终出来是一点点增多的十个“-”,一下子都出来是为什么呢?首先printf功能是向终端显示打

2021-03-07 16:09:38 219

原创 Linux六个常用工具

软件包管理工具yumyum就相当于软件应用商店,可以管理当前系统中能够安装和卸载的软件工具,并且实现安装和卸载操作。yum list:查看所有可以安装的软件工具yum search keyword:按照关键字查找工具yum install name:下载某个软件工具yum remove name:卸载某个软件工具编辑器vimvim是Linux下最常用的一个编辑器,所谓编辑器就是任何可以编写代码的工具,如Windows下的记事本等。vim下是不能使用鼠标的,通过键盘来操作,且有12种操作模式

2021-03-06 19:29:33 990

原创 Linux基础指令--文件压缩、权限

Linux基础指令–文件压缩、权限什么是文件压缩?肯定是想将文件的变小。思路: 按照一张指定的表,将相同的数据以更加短小的特殊数据进行替换,让内容变少。解压缩就是再替换回来。实现起来有多种不同的算法,对应着不同的压缩格式、压缩比率。Linux的压缩格式有?压缩名称及其压缩方式和解压缩方式zip: zip test.zip file1 file2…解压:unzip test.zipgzip: gzip file1 file2 (不用设置压缩包名称)解压: gunzip file1.gz

2021-03-03 18:22:43 325

原创 Linux基础指令–目录、文件相关

Linux基础指令–文件相关

2021-02-05 14:27:24 55

原创 Linux

**初学Linux**前言Linux操作系统的学习对我们很重要。一、Linux是什么?Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。它能够运行GNU Bourne Again Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。最根本,其就是一个操作系统。二、Linux的基本知识与Windows 不同,Windows是用鼠标点击。Linux没

2021-02-03 13:25:49 69

原创 2020-10-05

大家好,我是一个美丽的码农。给自己列个学习计划:一周编程三次,一次一个小时。希望大家监督我哦。对于自己学习编程 先是在学校里认真学习基础知识,最重要的是在课余时间的练习,和学长学姐们多交流,在各种网站上学习大家的技术经验。我最想进的公司是b站,耶~...

2020-10-05 20:01:08 51

空空如也

空空如也

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

TA关注的人

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