二叉排序树(也称二叉查找树)或者是一棵空树,或者是具有下列特性的二叉树:1)若左子树非空,则左子树上所有结点的值均小于根结点的值。2)若右子树非空,则右子树上所有结点的值均大于根结点的值。3)左、右子树也分别是一棵二叉排序树。2022 年考研 408 的数据结构大题就考察了二叉排序树的 C 语言实现。以下为我在学习和实战练习过程中所做的笔记,可供参考。
线索二叉树是一个二叉树通过如下的方法“穿起来”:所有原本为空的右(孩子)指针改为指向该节点在中序序列中的后继,所有原本为空的左(孩子)指针改为指向该节点的中序序列的前驱。以下为我在学习和实战练习过程中所做的笔记,可供参考。
树是 n(n ≥ 0)个节点的有限集。当 n = 0 时,称为空树。在任意一棵非空树中应满足:1)有且仅有一个特定的称为根的结点。2)当 n > 1 时,其余节点可分为 m(m > 0)个互不相交的有限集 $T_1,T_2,…, T_m$,其中每个集合本身又是一棵树,并且称为根的子树。以下为我在学习和实战练习过程中所做的笔记,可供参考。
堆栈(stack)又称为栈或堆叠,是只允许在一端进行插入或删除操作的线性表,遵循先进后出 FILO(First In Last Out)的原则。队列(Queue)简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队,删除元素称为出队或离队。以下为我在学习和实战练习过程中所做的笔记,可供参考。
顺序表在插入和删除操作需要移动大量元素。数组的大小不好确定,且存储分配需要一整段连续的存储空间,造成很多碎片。因此在需要经常插入和删除的线性表中,需要通过链式存储方式实现。线性表的链式表示称为链表。以下为我在学习和实战练习过程中所做的笔记,可供参考。
线性表是由 n个相同类型的元素组成的有序集合。线性表中元素个数 n 称为线性表的长度,当时为空表。是第一个数据元素,是最后一个数据元素,是的直接前驱,是的直接后驱。以下为我在学习和实战练习过程中所做的笔记,可供参考。
严老师的数据结构和王道数据结构都是用的 C 语言语法,但是额外使用了 C++的引用。引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。相对于 C 指针来说,C++ 引用会便捷许多。以下为我在学习和实战练习过程中所做的笔记,可供参考。
在我们编写程序时,有时候需要将不同类型的数据组合为一个整体,以便于引用。例如,一名学生有学号、姓名、性别、年龄、地址等属性,如果针对学生的学号、姓名、年龄等都单独定义一个变量,那么在有多名学生时,变量就难以分清。为此,C 语言提供结构体来管理不同类型的数据组合。以下为我在学习和实战练习过程中所做的笔记,可供参考。
计算机内存区域中的每字节都对应一个编号,这个编号就是“地址”。如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元。如果我们在程序中需要将某个整型、浮点型或字符型数据变量的地址保存下来,需要用到 C 语言为我们提供的指针。在 C 语言中,指针变量是一种特殊的变量,它用来存放变量地址。掌握指针,对于学习操作系统、理解操作系统原理会有非常大的帮助。以下为我在学习和实战练习过程中所做的笔记,可供参考。
C 语言标准输入 scanf 在通过
%s
读取字符串时遇到空格就认为读取结束,这样没办法把一行带有空格的字符串存入到一个字符数组中。所以当需要输入的字符串中含有空格时,我们需要使用 gets 函数进行读取,使用 puts 函数进行输出。以下为我在学习和实战练习过程中所做的笔记,可供参考。
1 / 2