- 博客(28)
- 收藏
- 关注
原创 C++学习指南(九)——二叉搜索树
既然名字里含二叉两个字,二叉搜索树至少满足二叉树的前提条件,也就是至少是棵二叉树。每个节点基本的成员仍然是该节点的信息,以及左右子树根节点的地址。public:{}K _key而二叉搜索树本身所存的也只是根节点的地址。
2025-01-14 15:57:33
304
原创 C++学习指南(七)——stack/queue/priority_queue
欢迎来到繁星的优快云,本期内容主要包括stack(栈),queue(队列),priority_queue(堆)实际上,C++中的stack、queue还有priority_queue与C语言中的内容无异,所以本篇文章主要想去阐述的,是有关stack、queue还有priority_queue的一些接口与实现原理。
2025-01-10 21:23:22
1106
原创 C++学习指南(六)----list
在先前的C语言学习中,我们接触到了顺序表和链表,而在C++中,这正好对应了vector(动态增长顺序表)和list(链表)。
2024-09-19 16:11:31
1396
原创 C++学习指南(五)——vector
vector可以说,打开了STL库的序章。作为最常用、最普适、最普遍的一个容器,vector会出现在程序的各个角落。
2024-09-05 10:34:31
802
原创 C++学习指南(一)——C++入门基础
欢迎来到繁星的优快云,本期内容主要包括C++第一个程序,命名空间,缺省参数,函数重载,引用、inline以及nullptr这些基础概念。
2024-07-13 18:06:07
1373
原创 排序(一)——冒泡排序、直接插入排序、希尔排序(BubbleSort,InsertSort,ShellSort)
欢迎来到繁星的优快云,本期的内容主要包括冒泡排序(BubbleSort),直接插入排序(InsertSort),以及插入排序进阶版希尔排序(ShellSort)。
2024-07-11 13:58:18
818
原创 一文带你入门二叉树!
这便是一棵简陋的"树"了。概念上来说,树是一种非线性结构,以有限层数构成有层次关系的集合。实际操作上来说,由于树是由链表作为底层原理实现的,不访问上一层无法访问到下一层,而这便是“层次关系”之说。注意:树不能有交集。上面第一行的三个全都不是树。如上述所言,堆的本质是完全二叉树,但与普通的完全二叉树不同的是,堆分为大堆和小堆,大堆的含义是父结点大于等于子结点,小堆的含义则是父结点小于等于子结点。如图为小堆实际上的储存结构。
2024-07-10 07:00:00
1169
原创 栈和队列的介绍与实现
大家在之前学习循环的时候,应该已经遇到过栈了。如果你写了一个巨大的递归函数,你可能会遇到栈溢出的情况发生。但是此“栈”非彼“栈”。栈溢出的栈是对于内存空间中的栈进行讨论的,而我们今天讨论的是数据结构的栈。同理,在下一期我们也会遇到堆,内存中的堆和数据结构的堆也是不同的两个东西。但这并非翻译失误,而是两者的原文都是Stack(栈)和heap(堆)。首先先说栈和队列的特点:栈:后进先出,一般用顺序表实现(可以用链表实现,但是并不方便)。将数据放入栈的操作,我们称为压栈(入栈)。
2024-05-17 00:51:56
1853
原创 编译与链接
我们编写任何一个程序,编译器帮我们构建命令行的过程可以分为四个步骤:预编译(prepressing)、编译(compliation)、汇编(assembly)、链接(linking)
2024-05-04 22:26:22
696
原创 文件和文件操作
在电脑上,我们经常看到各种后缀的文件,比如.jpg .zip .exe .txt等等这些文件的后缀虽然不同,但是他们都是文件。
2024-04-18 23:52:29
787
1
原创 结构体的初步介绍
首先得掌握结构体的对齐规则:1. 结构体的第⼀个成员对齐到和结构体变量起始位置偏移量为0的地址处2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的⼀个对齐数 与 该成员变量大小的较小值。3. 结构体总大小为最大对齐数(结构体中每个成员变量都有⼀个对齐数,所有对齐数中最大的)的整数倍。4. 如果嵌套了结构体的情况,嵌套的结构体成员对齐到自己的成员中最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体中成员的对齐数)的整数倍。
2024-04-10 19:14:20
1743
1
原创 字符函数和字符串函数的介绍
字符在C语言里是必不可少的一个重要组成部分,但我们不可能每次都只使用ASCII码对其进行操作,那样过于麻烦了,因而,C语言为我们提供了更方便的字符函数及字符串函数。
2024-04-07 13:24:41
601
原创 指针的初步认识
C语言中,指针=地址=内存单元的编号换句话说,指针指向一个你定义的元素。最简单的指针如下:此时,a的地址被存储到了p中,而p即是指针,类型为int*。说完类型,不得不提到的就是其占用内存空间在x64环境下,int*的内存占用空间为8。这是因为x64的地址是8个字节,而x86的地址是4个字节。同样的,char*、short*、long*等类型在x86环境下为4个字节,在x64环境下为8个字节。
2024-02-29 23:55:11
787
1
原创 位运算符(按位与& 按位或| 按位异或^ 按位取反~)
我之前的博客写过~和!=EOF在多组输入时的应用。这篇博客则是更系统地写一下几个位运算符, &,|,^,~。
2024-02-14 14:59:05
387
1
原创 设计扫雷游戏
最近学习了如何编程最基础的扫雷,算是我接触的第一个项目,虽然没有页面美化,功能上的拓展,但我已经在做成的那一刻已经感觉到很爽了。这是理科才能带来的成就感。
2024-02-01 23:54:15
739
1
原创 浅谈C语言数组
数组是一组相同类型元素的集合,这在我们初始化一个数组的时候就能看出来。中括号内为数组元素个数最大值。存储整型,我们就利用int;字符,就用char。一切按照需要来定义数组内元素类型;数组中存放的是1个或多个数据,但是数组元素个数不能为0。数组中存放的多个数据,类型必须是相同的。数组分为一维数组和多维数组。
2024-01-27 23:58:25
1760
原创 浅谈C语言分支与循环(一)
C语言中,分支与循环是实现程序必不可少的两大功能。所以我斗胆在此浅谈一下C语言中的分支与循环。不像循环中有诸多的表现方式,分支中if以及else占了使用中的绝大部分比重(以我短短的码龄来看),而switch对有限种情况往往有着更简便的书写方式。if与else在我的眼里就像是一对夫妻一样,如胶似漆,往往成对出现。形式如下:if(判断){expression1;不加大括号的if和else后只能跟一个语句,所以为了避免有多条语句,但是没有加大括号的情况发生,建议在if的条件判断后,一定要加上大括号。
2024-01-27 20:05:11
587
原创 关于我和我的编程学习
个人认为,编程是需要花苦功夫练的。每天保持刷题,前期题目难度低时每天保持刷题5道以上,代码量大幅上升的时候,刷题量每天保持3题以上。在学习到一定程度的时候,参与一些开源项目,并尝试准备ACM/蓝桥杯的竞赛,以及实习。真刀真枪的练永远比纸上谈兵更强,所以我会在能力达到的时候采取更好的锻炼方法。大一复旦非计算机专业在读,希望通过学习C语言打好编程的基础,增加技能。我打算在编程上每周花费至少24个小时,也就是大约每天3.5小时。谈论交叉领域,则希望进入有量化交易的金融公司。单纯IT方面,对字节跳动最有好感。
2024-01-17 00:04:41
413
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人