- 博客(12)
- 收藏
- 关注
原创 【无标题】
二叉树是一种数据结构,它由节点和指向其他节点的引用组成,每个节点最多有两个子节点。二叉树最常见的用途是在计算机科学和计算机工程中表示和处理层次结构数据,如目录树,数据库索引和编译器的语法分析树等。在二叉树中,每个节点有一个指向左子节点和右子节点的指针,它们可以是空值(NULL),这意味着节点没有左或右子节点。二叉树可以是空树,即没有任何节点的树。根节点是位于树顶部的节点,它没有父节点。二叉树的深度是根节点到最远叶子节点的路径上的节点数,而高度是根节点到最远叶子节点的距离。叶节点是没有子节点的节点。
2023-05-03 21:24:45
104
原创 栈队列实现
队列的基本操作包括:入队列(enqueue)、出队列(dequeue)、获取队头元素(front)、获取队列长度(size)等。在队列的实现中,通常使用数组或链表作为其底层数据结构,数组实现的队列称为顺序队列,链表实现的队列称为链式队列。队列是一种数据结构,它是一种先进先出(First-In-First-Out,FIFO)的线性结构,类似于现实生活中排队的场景。在队列中,元素(通常是数据)从一端入队列,从另一端出队列,其中入队列的一端称为队尾,出队列的一端称为队头。在多线程编程中,任务可以排队等待处理等。
2023-04-24 09:40:24
99
原创 汉诺塔的栈实现
该问题的解法可以通过递归的方式求解,将大问题划分为多个小问题,直到问题规模缩小到只剩下一个圆盘,然后再通过递归的方式将圆盘移动到目标柱子上。递归的过程中需要反复使用到借助柱子的思想,将问题逐步推进,直到所有圆盘都被移动到目标柱子上,问题得以解决。在递归的过程中,需要不断地将子问题的解组合起来,得到原问题的解。递归函数的参数需要包括源柱子、目标柱子和辅助柱子的编号,以及三个栈结构的指针,以便在递归过程中实现圆盘的移动和栈的操作。递归的边界条件:当只有一个圆盘时,直接将它从源柱子移动到目标柱子,递归结束。
2023-04-23 12:45:30
1418
原创 【无标题】
链表则是用一组不连续的存储单元存储线性表中的元素,每个节点包括数据域和指针域,指针域指向下一个节点,从而组成一个链式结构。静态链表的实现方式是:用数组来存储链表中的节点,同时用另一个数组来模拟链表中节点之间的指针关系。具体地,静态链表的每个节点包含两个字段,分别是数据域和指针域。其中,数据域存储节点中的数据,指针域存储下一个节点在数组中的下标。线性表是数据结构中最基本的概念之一,它是一种线性的数据结构,由一组数据元素(节点)组成,每个节点都有一个前驱和后继(除了第一个节点没有前驱,最后一个节点没有后继)。
2023-04-19 22:52:10
87
原创 静态链表代码抄写及其感悟
如果需要插入新元素并且没有足够的空间,就必须重新创建一个更大的数组,并将旧数组中的元素复制到新数组中。相比之下,动态链表只需要在需要时动态地申请内存空间,这样就可以避免不必要的内存浪费和拷贝操作。但动态链表的缺点是由于对内存动态分配,会降低程序的运行速度,并且可能导致内存泄漏等问题。静态链表和动态链表都是一种数据结构,它们的主要区别在于内存分配的方式。综合来说,静态链表适用于元素个数固定且较少的情况,而动态链表适用于元素个数不确定或者很多的情况。- 静态链表使用数组实现,数组的大小在创建时已经确定。
2023-04-10 21:49:04
96
1
原创 【无标题】单链表
我的感悟:单链表相对于之前的顺序表,多了许多优点,它的内存并不是固定的,可以随时加入,没有固定的大小,而顺序表的大小上限取决于最开始定义的数组的大小,一旦超越就无法再添加数据,所以对于一些会一直添加的数据来说,单链表无疑是更好的选择,但在数据在规定范围内的,顺序表又会方便很多,在数据查找时,顺序表的速度要远快于单链表,因为顺序表不需要依次遍历,只需要在指定位置调出数据即可,而单链表则需要从头开始遍历。
2023-03-29 21:55:41
121
原创 抄写代码后的感悟
void sequentialListInsert(SequentialListPtr paraListPtr, int paraPosition, int paraValue) { //在结构体的指定位置中插入数据,同时防止越界。int locateElement(SequentialListPtr paraListPtr, int paraValue) { //返回第一个与查找值相同的元素的下标。//将值8插入至第0位。if (paraPosition < 0) //插入位置小于0。
2023-03-28 11:36:02
113
原创 初学数据结构
(2)线性结构:结构中的数据元素之间只存在一对一的关系,除了第一个元素,所有元素都有唯一前驱;(3)索引存储:在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)(1)顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。(2)链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。3.数据对象:数据对象是具有相同性值的数据元素的集合,是数据的一个子集。
2023-03-22 21:39:41
390
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅