自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (1)
  • 收藏
  • 关注

原创 排序--插入排序--(直接插入排序、希尔排序)

插入排序

2023-01-04 13:54:05 107

原创 二叉树的链式结构实现

二叉树链式结构实现

2022-12-17 19:55:17 151

原创 堆排--TOP-K问题

TOP-K

2022-12-16 16:59:14 98

原创 数据结构--堆排序

堆排序

2022-12-16 15:12:02 79

原创 类和对象——默认成员函数--拷贝构造函数

只有单个形参,该形参是对本类型对象的引用(一般用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

2022-10-08 16:42:34 247

原创 类和对象——默认成员函数--析构函数

/而_t是Time类对象,所以在d销毁时,要将其内部包含的Time类的_t对象销毁,所以要调用Time类的析构函数。//但是:main函数中不能直接调用Time类的析构函数,实际要释放的是Date类对象,所以编译器会调用Date类的析构函数,而Date没有显式提供,则编译器会给Date类生成一个。

2022-10-08 13:30:28 183

原创 类和对象——默认成员函数--构造函数

内置类型就是语言提供的数据类型(int,char,…),自定义类型是我们自己(struct,class,union…)定义的类型。编译器生成的默认构造函数。

2022-10-08 12:53:17 300

原创 C++入门——引用(重点!!!)

当然,在有的教材当中,会在定义结构体的时候,就会定义结构体指针变量,如图上的PTNode,所以就会定义引用PTNode&phead;比如上面的sd,把d的值给sd,隐式转换为int,是有一个临时变量是int型的,把转换好的给临时变量,再去给sd,d本身没有变。在这里,rd引用的不是d,而是那个临时变量(具有常性,也就是只可读),现在要i引用为int,那就是可读可写,是不可以的。在这里,不一样的是没有了static的修饰,那么当Count函数栈帧销毁的时候,n也会销毁,此时n的别名,这块地址。

2022-09-25 20:05:45 433

原创 C++入门——命名空间

在c/c++中,会有变量、函数以及后面的类,这些名称都要存在于局部的,可能会有冲突。所以使用命名空间的意义就是,对标识符的名称进行本地化,以避免命名冲突或者名字的污染。namespace关键字 就是针对这种问题的。像这里,在stdlib头文件里已经有了rand这个函数,但是又定义了一个变量,名字与他一样,当程序打印rand时候,不知道是哪个,产生了歧义。所以为了避免这样,就会有命名空间。定义命名空间需要用到namespace关键字,后面接命名空间的名字,然后{}写体内,里面的就是。

2022-09-22 11:37:22 338

原创 数据结构--二叉树的顺序结构及实现

普通的二叉树是不适合用数组来存储的,因为这样会存在大量的空间浪费,但是完全二叉树却更适合用顺序结构存储。

2022-09-12 16:07:00 505

原创 数据结构--树的基本概念引入(二叉树)

结构像一颗倒挂的树。双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;子孙:以某节点为根的子树中任一节点都称为该节点的子孙。节点的度:一个节点含有的子树的个数称为该节点的度;兄弟节点:具有相同父节点的节点互称为兄弟节点;节点的祖先:从根到该节点所经分支上的所有节点;叶节点或终端节点:度为0的节点称为叶节点;非终端节点或分支节点:度不为0的节点;

2022-09-12 14:00:03 230

原创 数据结构--队列

队列只允许在一端进行插入数据这一端叫,在另一端进行删除数据,这一端叫,的特殊线性表。遵循的原则。入队出队。

2022-08-30 14:52:45 222

原创 数据结构--栈

栈是一种特殊的线性表,只允许从固定一端进行数据的插入和删除,这一段就做,另一端叫做栈的数据进出遵循的是的原则。

2022-08-30 14:09:31 133

原创 数据结构--双向链表

这里指,带头双向循环链表,结构复杂,一般就可以单独存储数据。

2022-08-22 13:38:54 247

原创 数据结构--单向链表

这边是指,无头单向非循环链表的各个接口函数的实现它一般不会单独拿来存储数据,更多拿来作为其他数据结构的子结构。

2022-08-22 13:26:55 106

原创 数据的存储

但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;这时,浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第一位的1,而是还原为0.xxxxxx的小数。这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即。...

2022-07-26 18:52:41 65

原创 预处理(详解)

FILE—//进行编译的源文件—LINE—//文件当前的行号—DATE—//文件被编译的日期—TIME—//文件被编译的时间—STDC—//如果编译器遵循ANSIC,其值为1,否则未定义%sline//为register这个关键字,创建一个简短的名字;)//用更形象的符号来替换一种实现case//在写case语句的时候自动把break写上。%s\tline%d\t\date%s\ttimeprintf(...

2022-07-21 18:35:03 498

原创 程序的环境

可以发现.i文件里面写了一些关于头文件的阐释以及拉到最后看到代码里面define的一些替换,使代码简化。即,最后将汇编产生的符号表(test.oadd.o)还有链接库合并。预处理完成之后就停下来,预处理之后产生的结果都放在test.i文件中。预处理选项gcc-Etest.c-otest.i。**3.汇编**把汇编代码转化成了二进制或者机器指令,生成。**1.预处理**完成了头文件的包含#include。**2.编译**把c语言代码转化成汇编代码。...

2022-07-21 15:42:34 251

原创 文件操作(详细总结)

在磁盘上的文件就是文件程序文件和数据文件**程序文件**源文件.c目标文件.obj可执行文件.exe**数据文件**程序运行需要从中读取数据的文件,或者输出内容的文件(文件内容不一定是程序,而是程序运行时读写的数据)。**文件名**路径+文件名主干+文件名后缀C\node(路径)\text(文件名).exe(文件名后缀)一个文件有唯一的文件标识,以便用户识别和引用。...

2022-07-19 11:42:21 1204 1

原创 柔性数组(详细)

在C99中,结构体中的最后一个元素允许是位置大小的数组,这就叫柔性数组。structs{intn;//或者写成intarr[0];};有的编译器都支持这两种写法,有的只支持其中一种。

2022-07-16 17:13:23 299

原创 个人自我介绍与计划

各位csdn的志同道合的朋友,你们好呀!首先我自我而介绍一下问我自己,本人即将升入大二,在去年这个时候高考结束,因为就超了一本几分,在了解了相关专业的情况下,选择了一个二本学校一本专业,计算机科学与技术。我是一个“安静”的女生哈哈哈,不是,是搞笑女,所以刚开始接触敲代码的时候,并不是觉得很有趣,总有那么一点的枯燥。但是经过一年的学习C语言,发现其实在自己熟练算法,并且很快敲击出来并运行成功的时候,何尝不是一种快乐呢?哈哈哈哈。......

2022-07-15 23:47:47 184

原创 数据结构--顺序表

顺序表是用一段物理地址的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表可以分为:1.静态顺序表:使用定长数组存储2.动态顺序表:使用动态开辟的数组存储代码实现通讯录的底层其实就是顺序表...

2022-07-10 09:24:14 50

原创 内存函数(memcpy,memmove,memcmp,memset)

因为是拷贝的内存的数据,所以什么类型都可以,用 void.*说明:memcpy应该拷贝不重叠的内存比如:但是,memmove可以处理内存重叠情况模拟实现memmove说明:但是可以看到,在VS-2013中,用memcp可以实现重叠拷贝原因:规定memcpy 只要实现了不重叠拷贝就可以了而VS-2013中实现既可以实现重叠也可以实现不重叠把ptr所指向的那块空间前的num字节设置成指定值value.以字节为单位设置内存...

2022-07-10 09:11:01 60

原创 字符分类和转换函数

1.iscntrl判断是否是任何控制字符2.isspace判断是否是空白字符3.isdigit 判断是否是十进制数字0-94.isxdigit判断是否是十六进制数字5.islower判断是否是小写字母6.isupper判断是否是大写字母7.isalpha 判断是否是字母8.isalnum判断是否是字母或者是数字9.ispunct判断是否是标点符号10.isgraph判断是否是任何图形字符11.isprint 判断是否是任何打印字符如果参数符合条件就返回真(非零)例如:字符转换函数1.

2022-07-09 15:22:55 85

原创 实现通讯录

在写程序之前,去想想要实现什么功能。1.存放信息的人数以及内容名字,年龄,性别,电话,地址2.增加人的信息3.删除人的信息4.修改人的信息5.查找指定人的信息6.排序通讯的信息这里,可以用contact.h去声明函数,以及类型的定义。contact.c去定义函数test.c去测试实现通讯录说明:1.一些变量最好用宏定义,修改变化方便。2.一开始尝试用静态,但是一下开辟过大,可能用不了浪费;一下开辟过小,也麻烦再去修改MAX的值。所以去选择动态开辟空间,节约。这里就需要即使记录数量的

2022-07-08 09:39:18 263

原创 编译链接与变量本质

在VS-2013中,编译链接的原理是将代码生成二进制可执行程序,然后运行。源文件.c通过编译器生成目标文件.obj再通过链接器结合链接库去生成可执行程序.exe从硬件的角度:这体现的是:冯诺依曼体系,详细可见百科: link.一个变量是需要程序运行起来,在程序内部去开辟空间的,而程序运行之前,就已经加载到内存了。这就说明了:所有变量,本质都是要在内存中某个位置开辟空间的。有数据需要暂时被保存起来,等候处理。数据在硬盘中,但能处理数据的是CPU,但是CPU处理数据是一个个的,那么在内存中就会有空间多

2022-07-08 08:50:37 71

原创 变量与函数的声明、定义与跨文件访问

组织项目结构的时候,项目越大越复杂的时候,不能单纯的去使用源文件,这样维护的成本会越高,所以就会有头文件的产生。基本上它是要被多个源文件包含的,所以会出现被重复包含的问题,所以,要在头文件顶部写上在头文件当中可以定义:1.C 头文件。例如: 2.所有的变量声明。例如3.所有函数的声明。例如:4.#define 类型 typedef,struct等。未声明的函数被main函数调用时,最后一步的链接,找不到这个函数的时候,编译器会报错。但是,如果编译的时,不存在的话,会以告警的形式来提醒,当去链

2022-07-07 21:29:08 747 1

空空如也

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

TA关注的人

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