- 博客(13)
- 收藏
- 关注
原创 数据结构 6.x章:非递归遍历二叉树(自己建栈)(c语言)
在空间复杂度方面,使用了一个栈S作为辅助空间,它的最大容量取决于二叉树的深度,所以空间复杂度为O(h),其中h为二叉树的高度。在空间复杂度方面,使用了一个栈S作为辅助空间,它的最大容量取决于二叉树的深度,所以空间复杂度为O(h),其中h为二叉树的高度。当p为空时,表示当前节点的左子树已经遍历完成,从栈中弹出该节点,访问该节点,并将指针p指向其右子树。在最坏情况下,即二叉树为满二叉树时,该算法遍历所有节点,时间复杂度为O(n),其中n为节点数。遍历过程中,只要栈不为空或p不为空,就需要继续进行循环。
2023-06-12 21:41:18 146
原创 数据结构 6.5章 :无向图的建立和深度遍历(c语言)
相比于邻接矩阵表示法,邻接表表示法的空间复杂度要小得多,因为邻接表只需要存储每个节点的邻接表头指针和其相邻节点的相关信息即可,而邻接矩阵需要存储所有的节点和它们之间的连边。具体代码中,使用了邻接表的结构体VertexNode和单链表中各节点的结构体ArcNode,其中VertexNode包含每个节点的值及其邻接表头指针firstarc,ArcNode则包含每个节点的邻接点序号adjvex和边表里下一个相邻节点的指针nextarc。先输入图的顶点数和边数,根据顶点数创建顶点表,并把表头指针域置空。
2023-06-12 20:59:27 1098
原创 线性表总结
总的来说,学习线性表需要对数据结构有一定的了解,需要学习和掌握基本的概念和算法,需要掌握顺序存储和链式存储两种存储方式的实现。2. 掌握线性表的顺序存储结构:顺序存储结构是指用一段地址连续的存储单元依次存储线性表的数据元素,顺序存储结构的实现需要掌握数组的使用。3. 掌握线性表的链式存储结构:链式存储结构是指通过指针将线性表的数据元素按照一定的顺序链接起来,链式存储结构的实现需要掌握指针的使用。4. 学习线性表的各种算法:如线性表的插入、删除、查找等算法,以及根据线性表实现的其他算法。
2023-04-19 23:26:30 63
原创 数据结构 2.5章:链表实现多项式相加(C)
第三步:用creatNode函数建立两个链表并初始化用来存放多项式。第一步:创建符合要求的结构体(链表节点)第四步:写一个测试函数用来测试多项式相加。第二步:写一个可以创建链表的函数。
2023-04-11 13:25:35 260
原创 数据结构 2.2章:单链表(c)
上节课讲了顺序结构表具有按物理关系存储数据的特点,其尾删(插)效率高,访问快但是随机插入和删除效率不高,且长度固定。而本次讲到链式结构表,其存储空间不连续,如果知道处理节点位置复杂度为1,重要的是没有空间限制,可以合理利用空间。使用链表时,要牢牢记住要操作节点的位置变化,链断开时要保存后面节点的钥匙。
2023-03-30 01:12:04 66
原创 数据结构 1.0章:第一次学习收获(绪论)(C)
而逻辑结构有两个要素(逻辑关系、数据元素),四类基本结构,即上面三种及集合结构。书中的三个例子也引出了线性表(线性结构)、树结构和图结构等结构(为逻辑结构),从而引出数据结构的两个层次(逻辑)(存储)。关于数据结构与算法,可以引入尼 · 沃特的一句话“数据结构 + 算法 = 程序”,那学好该课程的重要性可见一斑。由老师的言传身教加上查阅一些资料,我认识到学习数据结构与算法的的重大意义,让我坚定了学好该课程的决心。平时学习:1.多画图(直观简洁) 2.多应用(熟能生巧) 3.多交流(资源共享)
2023-03-22 22:36:47 402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人