自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构之图(有向图、无向图、存储结构)(多对多结构)

图型(Graph)结构:什么是图型结构:由有穷且非空的顶点和顶点之间的边的集合通常表示为: G(V,E) G表示一个图,V是图中顶点的(元素)集合,E是图中边(元素之间的关系)的集合无向图:边用(A,B)方式表示无向图,点和点之间是互通的在无向图中,任意两个顶点之间都有边,该图称为无向完全图,则含有n个顶点的无向完全图有 n*(n-1)/2 条边有向图:边用<A,B>方式表示,仅表示从A点到B点有边,有向图中边也叫弧,A是弧尾,B是弧头在有向图中,任意两个顶点之间都有方向相

2021-10-21 22:23:01 1850

原创 数据结构之树(二叉树、堆)(一对多结构)

二叉树二叉树是一种常用的数据结构,处理起来比较简单方便,而且普通树可以很方便地转换成二叉树使用二叉树的定义:节点的度最多为2的树二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。二叉树的性质:性质1:二叉树的第i层上至多有2^(i-1)(i≥1)个节点。 满二叉树: 1、每层的节点数都是2^(i-1) 2、可以理解为二叉树中每一层都是满的

2021-10-21 22:03:47 620

原创 数据结构与算法总结个人思维导图

2021-08-30 09:43:49 172

原创 C语言个人学习总结思维导图

2021-08-30 09:00:37 171

原创 数据结构之表(顺序表、链表、栈、队列)(一对一关系)

顺序表和链式表的实现顺序表: 数据项: 存储元素的内存首地址 表的容量 元素的数量 运算: 创建、销毁、清空、插入、删除、访问、查询、修改、排序、遍历 注意点: 1、不要越界 2、时刻保持元素的连续性 优点:支持随机访问,修改、访问、排序的效率比较高,大块的连续的内存不容易产生内存碎片 缺点:对内存的要求比较高(内存连续),插入、删除元素时很不方便、效

2021-08-17 20:36:55 698

原创 数据结构简介

一、什么是数据结构1、数据结构起源 1968年,美国高德纳教授著作的《计算机程序设计艺术》的第一卷《基本算法》的出版,开创了 数据结构和算法的先河。 数据结构是一门研究数据之间关系和操作的学科,而非计算方法。 数据结构+算法=程序,沃斯凭借这个观点写的论文,获得图灵奖,这句话展示了程序的本质。2、数据结构的基本概念 数据:所有能够输入到计算机中,能够被程序处理的描述可观事物的符号。 数据项:有独立含义的最小单位,也叫做域 [结构的成员项]

2021-08-17 19:42:21 172

原创 字符和字符串简介

字符:在计算机中是以整型形式存储的,当需要显示时会根据ASCII表中的对应关系显示出相应的符号或者图案‘\0’ 0‘0’ 48‘A’ 65‘a’ 97%c %dchar ch;字符的输入: scanf("%c",&ch); ch = getchar();字符的输出: printf("%c",ch); putchar(ch);串:是一种数据结构,是由一组类型相同的若干个数据组成,末尾有结束标志对于这种数据

2021-07-29 19:23:51 445

原创 指针和指针相关的知识(含堆内存)

什么是指针: 指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整型数据,代表了内存的编号,通过这个编号可以访问对应的内存为什么要使用指针:1、函数之间是相互独立的,但有时候需要共享变量 传参是单向值传递 全局变量容易命名冲突 使用数组还需要传递长度 命名空间是独立的,但是地址空间是同一个,所以指针可以解决这个问题2、由于函数之间传参是值传递(内存拷贝),对于字节数较多的变量,值传递的效率较低, 如果传递的是变量的地址,只需要传递4\8个字节,

2021-07-27 19:23:26 228

原创 进程映像、变量的分类、类型限定符简介

进程映像:程序:存储在磁盘上的可执行文件(二进制、脚本)进程:在系统中正在运行的程序进程映像:指的是进程的内存分布情况text 代码段 二进制指令 只读段 常量 只读的,强制修改会产生段错误data 数据段 初始化过的全局变量和初始化过的静态局部变量bss 静态数据段 未初始化过的全局变量和未初始化过的静态局部变量 运行前该段会自动清零,默认值是0heap 堆 由程序员手动

2021-07-27 17:26:00 253

原创 C语言 函数简介及综合练习

函数:函数是一段具有某项功能的代码的集合,是C语言中管理代码的最小单位函数把代码分成一个个函数,可以方便管理和调用代码函数分类: 标准库函数: C语言标准委员会为C语言以函数形式提供的一套基础功能,被封装在一个libc.so 库里,使用时需要包含头文件,函数名(参数)即可调用标准库函数注:在一部分编译器中,没有加头文件的情况下一部分函数依旧能够正常运行,但编译器会发出warning警告,这是因为这部分编译器自动包含了这一部分函数的功能,如gcc就是不需要添

2021-07-20 17:13:01 217

原创 原码、补码、反码与位运算符

原码、反码、补码:原码:数据的二进制-10 --> 10001010计算机只有加法器,其余算法都是用加法模拟的例: 1 - 1 1 + -1 00000001 + 10000001 = 10000010 -2 原码直接计算错误, 所以直接使用原码在有负数的情况下不适用反码: 正数的反码就是原码 负数的反码是原码除符号位外,其他位按位求反补码:数据在内存中都是以补码形式存储 正数的补码就是原码 负数的补码: 1、转

2021-07-19 20:09:22 362

原创 进制转换(二、八、十、十六)

进制转换:为什么使用二进制、八进制、十六进制?cpu只能识别高低两种电流,只能对二进制数据进行计算二进制虽然可以直接被cpu识别计算,但是对于人来说是不方便书写、记录的,所以把二进制的数据先转换成八进制是为了方便记录到文档中随着cpu的不断发展,cpu的位数不断增加,由早期的八位逐渐发展到现在的64位,因此八进制不再能满足需求,所以发展出了十六进制,由于历史原因,所以八进制还不能完全退出历史舞台转换方式:十进制转二进制(转其他所有进制都可用): 求余法:用2对数据求余,记录余数,然后继续

2021-07-19 19:50:37 301

原创 用C语言做点小游戏:走迷宫和推箱子

首先在一切之前,因为需要用到方向键,而获取方向键的函数在getch.h头文件中,所以需要导入getch.h到系统库中1、在windows中把getch.h头文件放入共享文件夹 //路径由于自己设置因人而异2、终端进入共享文件夹: cd /media/sf_share/ 3、复制头文件到标准库: sudo cp getch.h /usr/include/4、加读权限: sudo chmod +r /usr/include/getch.h //加入读取权限就够了a

2021-07-16 19:02:02 345 1

原创 二维数组与变长数组简介与练习

二维数组:一维数组相当于把变量排成一排,通过编号访问二维数组相当于把变量排成矩阵,通过行号和列号访问定义: 类型 数组名[行数][列数] int arr[3][5] [0,0][0,1][0,2][0,3][0,4] [1,0][1,1][1,2][1,3][1,4] [2,0][2,1][2,2][2,3][2,4]使用: 数组名[行下标][列下标] 列下标: 0~行数-1 行下标:

2021-07-14 20:56:11 544

原创 C语言循环、数组简单综合练习

1、打印9*9乘法表 include <stdio.h> int main(int argc,const char* argv[]) { for(int i = 1; i < 10; i++) { for(int j = 1; j <= i; j++) { printf("%d * %d = %02d ",i,j,i*j); }

2021-07-13 16:26:03 268

原创 数组简介与练习

数组什么是数组:变量的组合,是一种批量定义变量的方式定义:类型 数组名[数量]; int arr [5]使用:数组名[下标]; 下标:从零开始 范围:0~数量-1遍历:与for循环配合,使用循环变量i当做数组的下标初始化: 类型 数组名[数量] = {1,2,3,4...}; 1、数组与普通变量一样,默认值是随机的,因此为了安全要对数组初始化 2、这种初始化只能在定义数组的时候使用,并且只能逐个赋值,不能整体赋值 3、如果初始化的数据过多,编译器会产生

2021-07-13 16:19:59 76

原创 跳转语句简介与练习

跳转语句goto 可以在函数内任意跳转,但是必须在函数内,出了函数就跳不了 它可能会破坏已经设计好的分支、循环语句,因此绝大多数公司禁止使用 但是它在驱动编程时特别适合用于处理异常标签名: ... goto 标签名;练习1:不使用循环语句计算N的阶乘输入样例: 5得:1X2X3X4X5 = 120 int n = 0, ret = 1; printf("请输入n的值:"); scanf("%d",&n);loop: ret *= n; if(-

2021-07-13 16:16:09 74

原创 循环语句及综合训练

循环语句循环就是让一段代码反复执行,达到想要的效果for 循环语句: for 是一种比较灵活但有点危险(与其他循环相比)的一种循环 一般用一个变量来引导 for 循环的运行,一般这个变量叫做循环变量 i——>index for([1];[2];[3]) { [4]; } //[]里的内容可以无 1234按顺序执行 1、给循环变量赋初值:C99才可以再此处定义循环变量,C89不支持

2021-07-13 09:10:21 123

原创 开关语句及练习

开关语句switch(n) // n可以是数值,可以是表达式,但运算结果必须是整数{ case val: //val必须是整数常量 如果val等于n,则相当于打开了执行开关,break负责关闭 ... break; //关闭执行开关 case val: ... default: ... //如果所有的case都没有匹配成功,则打开该执行开关,并且放在

2021-07-12 20:15:50 261

原创 分支语句与练习

分支语句if(表达式) //单分支{ 当表达式为真值,执行此处代码}if(表达式) //双分支{ 当表达式为真值,执行此处代码}else if(表达式2){ 表达式2为真是,执行此处代码}else{ 表达式为假时,执行此处代码}注意:大括号建议上下对齐 当分支语句只有一条时,大括号可以省略,但不建议省略练习1:输入三个整数,从大到小显示 int num1,num2,num3,i = 0; printf("

2021-07-12 20:14:03 278

原创 输入输出、运算符、类型转换

格式化输入输出%nd 显示n个字符宽度,不够则补空格,右对齐%-nd 显示n个字符宽度,不够则补空格,左对齐%0nd 显示n个字符宽度,不够则补0,右对齐 (%-0nd不成立)%n.mf 显示n个字符宽度,不够则补空格0(小数点算一位),m表示小数点后的位数(四舍五入),m的优先度大于n,%g 不显示小数点后多余的0运算符自变运算符:++/-- 使变量的值自动+1/-1 前自变:++num --num 立即有效 后自变:num++ num--

2021-07-12 20:09:24 101

原创 变量与常量

变量与常量变量什么是变量:程序在运行期间数值可以变化的叫做变量,相当于存储数据的盒子定义: 类型 变量名; int num; 取名规则: 1、由字母、数字、下划线组成 2、不能以数字开头 3、不能与关键字重名,一共32个 4、见名知意(功能、类型、范围...) 例:printf scanf bool sizeof 中只有sizeof非法,剩余三个在未使用的时候可以用作变量 使用:

2021-07-12 20:02:37 96

原创 C语言数据类型

数据类型问:为什么要对数据分类1、现实社会中的数据就是自带类别属性2、对数据类型进行分类可以节约存储空间、提高运行的效率和速度存储空间的单位: Bit 比特 存储0或者1 一个比特存一个二进制,计算机存储数据的最小单位 Byte 字节 八个二进制位组成,计算机存储数据的基本单位 Kb 1024字节 Mb 1024Kb Gb 1024Mb Tb 1024Gb Pb 102

2021-07-12 19:52:57 70

原创 编译器工作过程简介

编译器 负责把人能看得懂的记录了代码的文本文件,翻译成计算机能看懂的二进制文件,有预处理器、编译器、链接器 gcc 是由GNU组织为了编译Linux内核代码而开发的一款免费开源的编译器,默认采用C89标准,-std=gnu99可以设置语法标准 常用参数:(区分大小写) -E 显示预处理的结果 会加入到 a.out 文件的头部 -S 生成汇编代码 生成.s文件 -c 只编译不链接

2021-07-12 19:50:32 485

原创 C语言简介

C语言简介:BCPL->newB->C->UNIX->Minix->Linux->gccC语言诞生于1970-1973年,在肯.汤姆逊和丹尼斯.里奇的主导编写下完成,归属于美国贝尔实验室。C语言专门为了编写操作系统而诞生的语言,所以天生适合硬件编程,以运行速度快而著称,也非常适合实现数据结构与算法。由于C语言出现时间过早,C语言是存在非常多的缺陷的,存在陷阱,但是前辈们总结了一些避免的经验《C语言的陷阱与缺陷》(C语言三剑客:《C陷阱与缺陷》、《C和指针》、《C

2021-07-12 19:47:33 75

原创 C语言不可用于定义变量的32个关键词

123

2021-07-12 19:31:39 815

原创 Vim文本编辑器基本操作

vim文本编辑器:可以再终端下采用纯键盘操作的一款文本编辑器,号称“编辑器之神”,可以升级(二次开发)、可以扩展(安装插件)基本用法: 进入vim: vim filename.c 如果文件不存在则创建,如果文件存在则打开 输入 i: 进入编辑模式,编写代码 保存退出: 按esc键退出编辑模式,输入ZZ保存并退出(键盘锁定大写可以直接输入ZZ,键盘小写可以选择按住shift然后点击zz)三大模式: 正常模式: 一般用于阅读文件,或者可以使用一些快捷键来快

2021-07-12 19:26:10 111

原创 Linux系统及命令介绍

Linux系统介绍 BCPL->newB->c语言-->UNIX系统->Minix->LinuxLinux管理硬盘的能力非常强,所以我们能看到的只有一个分区/ 表示根目录,所有文件都存储在他下面~ 用户主目录,主文件夹. 当前目录.. 上一级目录/bin 存储系统命令 Bin就是二进制的缩写/dev 存储设备文件(一切皆文件,设备作文件,学会操作文件就能通吃)/media 多媒体目录,U盘、光驱、挂载

2021-07-12 19:23:51 70

原创 Linux部分系统命令

Linux的系统命令:常用命令: ls 显示当前目录下有哪些文件 -a 显示当前目录下所有文件,以.开头的都是隐藏文件 -l 显示文件的详细信息 cd 进入一个目录 clear 清理屏幕 ctrl+l作为热键能起到相同的作用 pwd 显示当前所在的路径 whoami 显示当前用户名文件相关命令:注意:不是所有的功能都有唯一对应的命令 touch filename 创建文件

2021-07-07 18:37:13 66

原创 C++开发环境搭建(VirtualBox虚拟机和Ubuntu系统的安装,Ubuntu系统的配置)

准备资料首先,要求一台win7以上操作系统的PC资料清单图中含两种三个文件,分别为Ubuntu 14.04.6 VirtualBox 5.2.8 VirtualBox 6.1.4,Ubuntu为系统映射文件(此为LTS版本,意为长期支持版本),VirtualBox 6.1.4版本用于在5.2.8安装后无法运行的情况下使用使用VirtualBox和Ubuntu的理由:虽然虚拟机方面vm更好用,但VirtualBox免费开源,Ubuntu则是适合新手安装过程VirtualBox安装过程安装V

2021-07-06 23:33:36 1097 2

空空如也

空空如也

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

TA关注的人

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