快慢指针寻找循环入口
理论讲解 快慢指针是一个非常经典是算法思维,常常被用来在链表中寻找循环入口。 它在实际开发中也有比较广泛的使用,例如:在垃圾回收算法(如 Mark-Sweep)中,检测对象引用链中的环可以帮助发现和处…
|
|
|
142
|
1374 字
|
7 分钟
数据结构——树
前言 链表脱离了数组的空间限制,理论上可以无限延伸,具有高效的插入与删除操作,但是与之付出的代价是——链表的查找效率低下。 而树结构的出现便是为了解决这个问题。 本文提供一个基于c语言的通用型红黑树模…
|
|
|
588
|
16861 字
|
1.9 小时
理解指针址传递的一种思维方式——虚无指针
前言 这种方式是我在研究多线程编程的过程中发现的一种理解方式,虽然并不官方,但是便于理解指针的传递过程。 请看一看下面代码: void *function(void* arg){ int *retur…
|
|
|
262
|
695 字
|
4 分钟
论指针
前言 运行环境:centos7( Linux) 编译器: gcc 9.3.1 64位 指针是什么 地址是内存空间对应的编号。 指针就是地址! 指针作为c语言最难的语法之一,也是C语言和c++的特色之一…
|
|
|
313
|
7032 字
|
37 分钟
论数组
数组是什么? 从本质上来讲,数组是一个相同类型的数据集合,如 int a[10] 本质上是10个 int 类型的数紧密地罗列在一起,并且在地址上构成连续。比如地址从0x00~0x40(因为 int 占…
|
|
|
262
|
3449 字
|
18 分钟
C语言中字符串的两种表达形式-char*和char[]
前言 在C语言中,追根到底有且仅有两种方式表示字符串——char*和char[]。但是由于指针和数组的关系,这两个方法类似但不完全相同。 char[] 我们知道,char []是一个字符数组,本质上是…
|
|
|
208
|
697 字
|
5 分钟