• 好好学习,天天向上~
  • 欢迎欢迎~

lcc的文章

linux笔记

linux学习21,自平衡二叉树和红黑树的原理和特点

二叉搜索树的局限性 上一节较为详细的介绍了C语言中的二叉搜索树,提到数据采取二叉搜索树的结构存储,可以获得不错的搜索性能。 二叉搜索树之所以有不错的搜索效率,是因为在往树中插入数值时,始终严格的遵守左子节点值比父节点值小,右子节点值比父节点大的准则。以搜索 12 为例: 从根节...

3个月前 (01-26) 113℃ 0评论 2

linux笔记

linux学习第20节,二叉树的特性和插入、查询、删除等基本操作

前面几节较为详细的讨论了 linux 内核常用的链表、队列、映射等几种数据结构,本节将介绍C语言中另一种重要的数据结构——二叉搜索树(通常简称为BST),并且将一行一行写出相关的C语言代码。 二叉树的概念 树结构是一个多层的特定数据结构,每个节点之间通过指针连接(这点有些像链表)...

3个月前 (01-24) 82℃ 0评论 0

单片机

单片机很好玩12,制作亮度随环境亮度变化的小灯

上一节,我们利用C语言编程单片机仿制了达文西的“古怪手电筒”,达成了“在有光的时候就会亮,在没有光的情况下绝对不会亮!”的目标。 其实在此基础上,C语言还能做些更好玩的东西。例如,制作一个小灯,这个小灯的亮度能够随着环境光线自我调整改变,如下图: 可以看出,当环境光线较强时,L...

3个月前 (01-23) 109℃ 0评论 0

linux笔记

linux学习19,内核中的“队列”数据类型

前面两节较为详细的讨论了 linux 内核中链表的设计,以及相关的C语言代码实现。本节再来看看 linux 内核中另外一种常用的数据类型:队列。 “队列”数据结构适合处理“生产者”和“消费者”编程模型 事实上,不仅仅是 linux 内核,基本上稍微有些规模的编程项目都会用到“队列...

3个月前 (01-22) 136℃ 0评论 0

linux笔记

linux学习18,内核是如何操作链表的

上一节较为详细的介绍了 linux 内核中链表的设计与实现,能够看出,内核实际上是将链表“塞入”数据结构的。事实上,为了方便的操作这些链表,linux内核实现了一系列方法,本节将了解此。 链表的初始化 正如上一节介绍的,list_head 本身没有记录额外的信息,它仅仅起到连接...

3个月前 (01-21) 87℃ 0评论 0

linux笔记

linux学习17,内核中链表的设计与实现

上一节较为详细的讨论了 linux 中的系统调用,接下来几节将学习 linux 内核中的基本数据结构的设计和实现。本节先来看看 linux 内核中的链表。 链表和数组有些相似 链表是基于 C语言指针的,看了我《C语言入门》系列文章的朋友应该记得这张图: 指针 p2 指向一块内存...

3个月前 (01-19) 85℃ 0评论 0

单片机

单片机很好玩11,制作达文西的“古怪手电筒”

最近重温经典喜剧电影时,发现下面这么一幕: 达文西发明了一个“古怪手电筒”,“在有光的时候就会亮,在没有光的情况下绝对不会亮!”,这种手电筒是怎么制作的呢,我们能否自己制作一个类似的手电筒呢?当然可以,情继续往下看。 设计“古怪手电筒” 这里计划仍然使用C语言编程 51 单片机完...

3个月前 (01-17) 142℃ 0评论 0