- 博客(41)
- 资源 (2)
- 收藏
- 关注
原创 基于Huffman树的文件压缩
基于Huffman树的文件压缩一、开发环境二、项目原理1. 文件在计算机是如何存储的?2. Huffman算法原理三、项目流程1. 文件压缩01 统计文件中字节出现的频次信息02 根据统计结果构建Huffman树03 通过Huffman树来获取每个字节对应的编码04 对待压缩文件进行改写2. 文件解压缩01 从压缩文件头部获取解压缩所需的信息02 根据获取的信息重新构建Huffman树03 根据huffman树来获取每个字节对应的编码04 将压缩文件中的压缩编码进行转译四、项目测试五、项目中遇到的问题一、
2021-10-24 20:02:38 933
原创 《Linux从0到99》十一 进程信号
进程信号一、 信号的概念二、 信号的种类1. 非可靠信号 (非实时信号)2. 可靠信号 (实时信号)三、 信号的产生方式1. 硬件产生2. 软件产生四、 信号的注册五、 信号的注销六、 信号的处理方式七、 信号的捕捉流程八、 信号的阻塞一、 信号的概念信号是进程之间事件异步通知的一种方式,属于软中断。二、 信号的种类在linux下使用kill -l命令可以查看系统定义的信号列表每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定 义 #define SIG
2021-07-26 11:31:51 262 1
原创 《Linux从0到99》十 进程间通信
进程间通信一、 什么是进程间通信1. 进程间通信的目的2. 进程间通信的分类二、 管道1. 管道01 管道的符号02 管道的本质2. 匿名管道与命名管道01 匿名管道02 命名管道三、 消息队列四、 共享内存1. 共享内存的原理2. 共享内存接口01 shmget02 shmat03 shmdt04shmctl3. 共享内存的特性一、 什么是进程间通信1. 进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组
2021-07-24 22:48:00 198
原创 《c++从0到99》七 STL之string类
string类一、 标准库中的string类01 了解string类02 string类的常用接口二、 string类的模拟实现一、 标准库中的string类01 了解string类字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。string类是ba
2021-07-12 15:41:25 181 1
原创 《c++从0到99》五 C&C++内存管理
c&c++内存管理1. c/c++内存分布2. c语言中动态内存的管理方式3. c++中动态内存的管理方式01 new和delete内置操作类型02 new和delete操作自定义类型4. operator new 和operator delete01 operator new与operator delete函数02 operator new与operator delete的类专属重载5. new 和 delete 的实现原理6. 定位new表达式1. c/c++内存分布2. c语言中动态内存
2021-07-06 16:44:49 147 3
原创 《Linux从0到99》八 进程控制
LINUX进程控制1. 进程创建(fork)2. 进程终止3. 进程退出4. 进程等待5. 获取子进程的status6. 进程替换1. 进程创建(fork)函数形式 pid_t fork();头文件:#include <sys/types.h>提供pid_t的定义功能:创建一个子进程。参数:没有参数。返回值:返回俩个值,子进程中返回值为0,父进程中返回值为子进程的pid号。出错返回-1。实例:#include <stdio.h>#include <unistd
2021-06-29 13:04:31 151 3
原创 《Linux从0到99》七 进程地址空间
地址空间1. 什么是地址空间?2. 虚拟地址空间出现的原因3. 地址空间的工作方式4. 地址空间的三种管理方式01 分页式内存管理(提高内存利用率)02 分段式内存管理(便于管理)03 段页式内存管理(既提高了内存利用率,又便于内存管理)1. 什么是地址空间?地址空间(address space) 表示任何一个计算机实体所占用的内存大小。比如外设、文件、服务器或者一个网络计算机。地址空间包括物理空间以及虚拟空间。物理地址 (physical address): 放在寻址总线上的地址。放在寻址总线上
2021-06-27 16:27:17 140 1
原创 《Linux从0到99》六 进程概念 下
进程概念 下1. 僵尸进程01 僵尸进程的概念03 解决僵死状态/僵尸进程04 僵尸进程的模拟实现05 僵尸进程的危害2. 孤儿进程01 孤儿进程的概念02 孤儿进程的模拟实现03 孤儿进程的危害3. 进程优先级4. 环境变量01 为什么需要环境变量(环境变量的概念)02 常见环境变量03 如何查看环境变量04 环境变量相关命令05 环境变量的组织方式06 通过代码如何获取环境变量07 通过系统调用获取或设置环境变量08 环境变量的全局性5. 程序地址空间6. 进程地址空间1. 僵尸进程01 僵尸进程的
2021-06-27 15:30:33 334
原创 《Linux从0到99》五 进程概念 上
进程概念1. 冯·诺依曼体系结构2. 操作系统01 概念02 设计OS的目的03 OS的定位04 对OS所谓管理的理解3. 进程01 基本概念02 描述进程PCB1)task_struct-PCB的一种2)task_ struct内容分类03 查看进程04 通过系统调用获得进程标识符05 通过系统调用创建进程-fork06 进程状态1)R运行状态(running)2)S睡眠状态(sleeping)3)D磁盘休眠状态(Disk sleep)4)T停止状态(stopped)5)X死亡状态(dead)6)t跟踪
2021-06-26 12:22:50 120
原创 《c++从0到99》 三 类和对象 中
类和对象 中0. 类的六个默认构造函数1. 构造函数2. 拷贝构造函数3. 析构函数4. 赋值运算符重载5. const修饰的成员函数6. 日期类的实现0. 类的六个默认构造函数定义一个空类:class Date{}经过编译器处理之后,类Date不在为空,它会自动的生成六个默认的成员函数,即使这六个成员函数什么也不做。(这些成员函数当我们没有定义时,编译器会显示的调用)处理之后相当于:class Date{public: Date();// 构造函数 Date(con
2021-06-21 17:00:51 493
原创 《c++从0到99》 一 c++入门
c++入门1. c++的认识2. c++关键字3. c++的命名空间01 命名空间的定义02 命名空间的使用4. c++的输入输出5. 缺省参数6. 函数重载7.引用8. 内联函数9. auto10. 范围for循环11.指针空值nullptr1. c++的认识C++ 是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问
2021-06-16 16:23:33 934 4
原创 数据结构《四》二叉树的实现
1. 队列的功能实现01 创建二叉树与销毁二叉树02 二叉树的遍历a) 二叉树的前序遍历b)二叉树的中序遍历c)二叉树的后序遍历d) 二叉树的层序遍历03 求二叉树中结点个数04 求二叉树叶子结点个数05 求二叉树第k层结点个数06 求二叉树的高度07 二叉树查找值为x的结点08 判断二叉树是否为完全二叉树2. 代码整合
2021-06-14 21:00:35 346
原创 《Linux从0到99》四 Linux编译器(gcc/g++)和调试器(gdb)
本文主要讲了1.Linux下编译器gcc、g++的使用。2.调试器gdb的用法3.makefile文件的编写
2021-06-05 18:52:32 1461 5
原创 模拟实现内存拷贝函数memcpy和memmove
1.模拟memcpy要实现的功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dst所指的内存地址的起始位置中。void* my_Memcpy(void* dst, void* src, size_t count){ assert(dst != NULL && src != NULL); void* ret = dst; while (count--) *((char *)dst)++ = *((char*)src)++; return ret;}2.模拟
2021-04-23 16:11:31 807 1
原创 模拟实现string库函数
01 模拟实现strlen函数02 模拟实现strcpy函数03 模拟实现strncpy函数04 模拟实现strcat函数05 模拟实现strncat函数06 模拟实现strcmp函数07 模拟实现strncmp函数
2021-04-21 15:10:53 996
原创 深度剖析数据在内存中的存储方式
1.数据类型的详细介绍2.整型在内存中的存储(原,反,补)3.浮点型在内存中的存储4.数据在大端和小端中的存储方式
2021-04-14 17:07:47 2326 4
原创 操作符的初步了解
操作符算术操作符:+ - * /%取余 例 11%2=1移位操作符:>> <<移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位运算int i=10; 0000 0000 0000 1010 10int a=i<<2; 0000 0000 0010 1000 40 //左移丢弃最高位。0补最低位int b=i>>2; 0000 0000 0000 0010 2 //右移丢弃最低位,最高位正数补0,负数补1位操作符
2021-04-02 21:42:01 948 1
VNC远程连接工具-VNC-Viewer
2022-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人