摘要:
命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS verdor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary I 阅读全文
摘要:
fork() 函数简介 fork系统调用用于创建一个新进程,称为子进程,它与进行fork()调用的进程(父进程)并发运行。创建新的子进程后,两个进程都将执行fork()系统调用之后的下一条指令。子进程使用相同的PC(程序计数器),相同的CPU寄存器,相同的打开文件,这些文件在父进程中使用。 ` 它不 阅读全文
摘要:
二叉树|集合1(简介) ======== 树 :与数组、链表、堆栈和队列不同,它们是线性数据结构,树是分层数据结构。 树的概念 :最上面的节点称为树的根。直接位于元素下的元素称为其子元素。某物正上方的元素称为其父元素。例如,‘a’是‘f’的子代,‘f’是‘a’的父代。最后,没有子元素的元素称为叶子( 阅读全文
摘要:
希尔排序 ======== 希尔排序是插入排序的变体。在插入排序中,我们只将元素向前移动一个位置。当一个元素必须向前移动很远时,就会涉及到许多动作。shellSort的想法是允许远距离项目的交换。在shellSort中,我们将数组h排序为一个较大的h值。我们不断减少h的值,直到它变为1。如果每h个元 阅读全文
摘要:
插入排序 ======== 插入排序是一种简单的排序算法,其工作方式与我们手中扑克牌的排序方式相同。 算法演示 // 排序大小为n的arr[] insertionSort(arr,n) 从i=1到n 1的循环 拾取元素arr[i]并将其插入排序序列arr[0…i 1] 例子 另一个例子 让我们循环i 阅读全文
摘要:
选择排序 ======== 选择排序算法通过重复查找未排序部分的最小元素(考虑升序)并将其放在开头来对数组进行排序。该算法在给定的数组中维护两个子数组: 已经排序的子数组。 未排序的剩余子阵列。 在选择排序的每次迭代中,从未排序的子数组中拾取最小元素(考虑升序)并将其移动到排序的子数组。 以下示例说 阅读全文
摘要:
冒泡排序 ======== 冒泡排序是最简单的排序算法,它通过重复交换相邻元素(如果它们的顺序不正确)来工作。 例如: 第一遍: ( 5 1 4 2 8) ( 1 5 4 2 8),这里,算法比较前两个元素,由于5 1所以交换。 (1 5 4 2 8) (1 4 5 2 8),交换,由于5 4。 ( 阅读全文
摘要:
代码实现 hashTable.c文件 hashTable.h文件 test.c文件 阅读全文
摘要:
红黑树第一部分:介绍 红黑树是一种自平衡的二叉搜索树(BST),其中每个节点遵循以下规则。 每个节点都有红色或黑色 树的根总是黑色的 没有两个相邻的红色节点(红色节点不能有红色的父节点或红色的子节点) 从节点(包括根)到其任何子代NULL节点的每条路径都具有相同数量的黑色节点 为什么要用红黑树 大多 阅读全文
摘要:
AVL树第一部分,(插入) AVL树是一种自平衡二叉搜索树(BST),其中对于所有节点,左右子树的高度差不能超过1。 一个AVL树的示例 上面的树是AVL树,因为每个节点的左子树和右子树的高度之间的差小于或等于1。 一个非AVL树的示例 上面的树不是AVL树,因为 8 和 18 的左子树和右子树之间 阅读全文