自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用哈夫曼树实现文件压缩和解压缩

完成文件压缩与解压缩花了近一个星期的时间,期间,花了很遇到不少问题,花了很长时间去调试,最后完成了文本文件的压缩。通过调用库中的优先级队列实现哈夫曼树,基于哈夫曼树最终实现文件压缩。 ## 实现哈夫曼树(利用优先级队列) ###define _CRT_SECURE_NO_WARNINGS 1#pragma once#include<iostream>#include...

2018-08-20 08:20:05 8087 1

原创 进程间通信

一. 实现pipe/msgqueue/sems/shm相关代码1.实现pipe1、write()函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入count个字节到参数放到所指的文件内。返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返...

2018-08-20 07:53:48 168

原创 C++继承

一,概念1,继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手 段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样 产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现 了由简单到复杂的认知过程。 2,作用: (1)、继承可以减少重复的代码。比如父类已经提供的方法,子类可以直接使用,不必再去实现。 (2)、继承是多态性的前提。当...

2018-05-21 16:40:23 151

原创 mallc

三个函数的申明分别是: void* malloc (size_t size); void* calloc (size_t num, size_t size); void* realloc (void* ptr, size_t size); //ptr 是要调整的内存地 // size 调整之后新大小都在st...

2018-04-23 14:23:53 400 1

原创 C++类和对象

一.引用.1. 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器 不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空 间 类型& 引用变量名(对象名) = 引用实体; int a = 10; int& ra = a;(必须和引用实体是同种类型) 2. 引用特性 a. 引用在定义时必须初始化 b. 一个变量可以有多个引用 c. ...

2018-04-12 18:21:23 226

原创 进程控制

编写shell. #include<stdio.h>#include<unistd.h>#include<sys/wait.h>#include<stdlib.h>#include<string.h>void do_shell(int argc,char*argv[]) { pid_...

2018-04-06 17:29:13 102

原创 进程基本概念

1.task_struct结构体: 在Linux下描述进程的结构体为task_struct结构体。它将会被装载到RAM(内存)里并且包含着进程的信息。 task_struct内容分类: .标识符:描述本进程的唯一标识符。 .状态:任务状态,退出代码等。 .优先级: .:程序计数器:程序中即将被执行的下一条指令的地址。 .内存指针:程序代码和进程相关数据的指针,还有和其他...

2018-04-01 11:46:11 230

原创 各种编译器和编辑器对比

对比编辑器之间的区别和优缺点. vim是从vi发展出来的一个文本编辑器。代码补完、编译错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 1 、Vim Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 2 、Eclipse Eclipse是一款很酷的开源代码编辑...

2018-03-30 17:02:55 2420

原创 linux权限及指令

linux权限及指令1.进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. cd:a.语法 cd 目录名(进入目录) b.所需权限x touch:a.语法 touch 文件名(创建文件) b.所需权限wx ls:a.语法 ls (显示当前目录下的所有文件) b.所需权限rx rm...

2018-03-23 16:05:06 206

原创 辗转相除法求最大公约数的原理

假设有两个数x和y,存在一个最大公约数z=(x,y),即x和y都有公因数z, 那么x一定能被z整除,y也一定能被z整除,所以x和y的线性组合mx±ny也一定能被z整除。(m和n可取任意整数)对于辗转相除法来说,思路就是: 若x>y,设x/y=n余c, 则x能表示成x=ny+c的形式, 将ny移到左边就是x-ny=c,由于一般形式的mx±ny能被z整除, 所以等号左边的x-ny(...

2018-02-08 20:03:54 5198

原创 【单链表】环的入口点  原理理解

题目:试判断一个链表中是否有环?若请找出该链表的环的入口结点? 1:判断链表是否带环: 判断有环的方法就是用两个快慢指针p1、p2,p1的速度为P2的两倍,两个指针同时从链表的头结点开始出发,当两个结点再一次相遇且相遇点不是最后一个结点时,说明此链表有环。2:、若有环,找环的入口: ① 当P1和P2在PM相遇时: P1走过的路程(结点数):S快=L+X+n*R; P2走过的路程(结点

2017-12-28 12:20:18 1808 1

原创 字符串求长度

char str[20]=”0123456789”; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0’为字符串结束标记。 从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。 strlen(…)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了

2017-12-27 22:33:15 3186

原创 交换两个数字的值

交换俩个数字 1^0=1; 1^1=0; 交换 a和b的值 a=a^b; b=a^b;//此时a=a^b,             //b=a^(b^b),              //b=a^0;             //b=a;  b=a^b //同理可得此时b=a;

2017-12-06 19:24:32 198

原创 指针

1 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array,即指向数组的指针 eg int a[4]* 指针数组: 因为[]优先级高于,数组a中有4个元素都为int型指针 int (*a)[4] 数组指针:a先和*结合,说明a是一个指针变量,然后指着指向的是一个大小为4个整型的数组。

2017-11-24 16:06:00 166

原创 扫雷

game.h#ifndef __GAME_H__#define __GAME_H__#include#include#define ROWS 6#define COLS 6#define num 4 //雷数void game();void set_mine(int arr[ROWS][COLS], int row, int col);void show_set

2017-10-22 22:50:17 241

原创 三子棋

game.h#endif#ifndef __GAME_H__#define __GAME_H__#include#include#define ROWS 3#define COLS 3void game();char check_win(char arr[ROWS][COLS], int rows, int cols);static int is_full(char

2017-10-22 22:41:48 128

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-10-14 22:27:45 139

原创 数组相关知识

一:一维数组1:int arr[  ]     []内为常量:int a=1;a+2;[]下标引用操作符char arr1[] = "abc";内存:abc\nchar arr2[3] = {'a','b','c'};内存存放:abc2:数组为自定义类型。int arr[10]={0}; sizeof(arr)          大小输出:40           

2017-10-14 21:51:45 150

原创 C语言操作符总结

一,分类算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员二,1,算术操作符 + - * / %2,移位操作符a    eg       :b >> 右移操作符首先右移运算分两种:1. 逻辑移位:左边用0填充,右边丢弃

2017-10-08 15:14:57 285

原创 我的第一篇博客2017

大学生活过的不是想象中的那样精彩,但是时间还是过的飞快。我已经是一名大三的学生了,但我不知道有什么可以比较擅长的东西可以为自己的简历加分。现在想想有很多事情应该早早准备,不然错过了好的机会就会成为心中永远的痛。所以我要从新努力学习编程,在平时学习时首先把基础的书读懂,然后多上机实践,最后总结和分享自己所学习到东西,为找一份自己满意的工作努力。1>写一个自我介绍。 2>列出你编程的目标。

2017-09-16 21:52:48 359 1

空空如也

空空如也

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

TA关注的人

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