首页
学习
活动
专区
工具
TVP
发布

学习

学习
专栏成员
35
文章
3301
阅读量
14
订阅数
【数据结构初阶】排序算法(中)快速排序专题
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。 其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。
用户11289853
2024-09-29
910
【数据结构初阶】排序算法(上)插入排序与选择排序
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
用户11289853
2024-09-26
600
【数据结构初阶】链式二叉树接口实现超详解
用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址,其基本结构如下:
用户11289853
2024-09-24
740
【数据结构初阶】顺序结构二叉树(堆)接口实现超详解
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根结点没有前驱结点。 除根结点外,其余结点被分成 M(M>0)个互不相交的集合 T1、T2、…、Tm ,其中每一个集合Ti (1 <= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。因此,树是递归定义的。 树形结构中,子树之间不能有交集,否则就不是树形结构。其实就是一个节点不能有多个前驱。 树可以看做是这样的:
用户11289853
2024-09-24
1050
【数据结构初阶】队列接口实现及用队列实现栈超详解
概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FlFO(First In First Out)的特点。
用户11289853
2024-09-24
1310
【数据结构初阶】栈接口实现及经典OJ题超详解
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
用户11289853
2024-09-24
1100
【数据结构初阶】链表分类与双向带头循环链表接口实现
虽然有这么多的链表的结构,但是我们实际中最常用只有两种结构:单链表和双向带头循环链表。
用户11289853
2024-09-24
900
大二必做项目贪吃蛇超详解之下篇游戏核心逻辑实现
现在我们解释一下Snake结构体中的_SleepTime是怎么控制速度的。 首先我们要明确:程序的运行速度是非常快的,对于贪吃蛇这样的小项目来说,所有的代码都可以看作是瞬间完成的,如果直接执行,那贪吃蛇一定会在我们反应过来之前直接死亡,所以说我们需要使用Sleep函数让函数停下来一会儿来控制速度。
用户11289853
2024-09-24
1010
大二必做项目贪吃蛇超详解之中篇游戏设计与分析
我们最终的贪吃蛇界面是这个样子,可以发现这和之前写的C语言项目的最大不同就在于文字不是依次排列的,那我们的地图应该如何布置呢?
用户11289853
2024-09-24
890
大二必做项目贪吃蛇超详解之上篇win32库介绍
C语言函数、结构体与枚举、动态内存管理、预处理指令、单链表、Win32 API(本文介绍)等(除了这些,还应该熟知C语言的基本语法,比如操作符什么的,就不一一列举了)。
用户11289853
2024-09-24
1100
【数据结构初阶】单链表接口实现超详解
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
用户11289853
2024-09-24
810
【数据结构初阶】顺序表接口实现及双指针法超详解
线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。
用户11289853
2024-09-24
1120
VS2022实用调试技巧超详解
本文章以VS2022为例讲解调试功能,不同的编译器可能会有所差异,但殊途同归,对其他编译器的使用也有一定的借鉴价值。
用户11289853
2024-09-24
1400
数据结构初阶——算法复杂度超详解
数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学各式各样的数据结构, 如:线性表、树、图、哈希等
用户11289853
2024-09-24
1410
C语言预处理超详解
在上篇博客中我们讲过:#define 会在预处理阶段展开,而对于预定义来说,展开就是把出现 name 的地方直接替换为 stuff,所以如果是第一行定义,这个代码展开后就是这样的:
用户11289853
2024-09-24
910
C语言编译和链接超详解
第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令) 第2种是执行环境,它用于实际执行代码。
用户11289853
2024-09-24
1060
C语言文件操作超详解
如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。
用户11289853
2024-09-24
890
C语言动态内存管理超详解
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。 C语言引入了动态内存开辟,让程序员自己可以申请和释放空间,就比较灵活了。
用户11289853
2024-09-24
1370
C语言自定义类型联合体与枚举超详解
像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。 给联合体其中一个成员赋值,其他成员的值也跟着变化。
用户11289853
2024-09-24
820
C语言自定义类型结构体与位段超详解
编译器会把上面的两个声明当成完全不同的两个类型,所以是非法的。 匿名的结构体类型,如果没有对结构体类型(使用 typedef )重命名的话,基本上只能使用一次。
用户11289853
2024-09-24
780
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档