数据结构
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。
Eliauk-GX
大一新手一枚
展开
-
DFS与BFS模板
深度优先遍历,就是在每个点x上面对多条分支时,任意选一条边走下去,执行递归,直至回溯到点x后,再考虑走向其他的边。原创 2022-11-14 17:03:14 · 326 阅读 · 0 评论 -
二叉树的遍历(递归与非递归)
【代码】二叉树的遍历(递归与非递归)原创 2022-11-14 16:49:57 · 195 阅读 · 0 评论 -
树与图的存储之邻接表法
ne[M] : 表示 与 第 idx 条边 同起点 的 下一条边 的 idx。对于无向图中的边ab,存储两条有向边a->b, b->a。h[N] : 表示 第 i 个节点的 第一条边的 idx。e[M] : 表示 第idx 条边的 终点。树是一种特殊的图,与图的存储方式相同。因此我们可以只考虑有向图的存储。idx : 边的下标索引。i : 节点的下标索引。原创 2022-10-25 17:41:03 · 348 阅读 · 0 评论 -
数组模拟队列
用一个数组 q 保存数据。用 hh 代表队头,q[hh] 就是队头元素, q[hh + 1] 就是第二个元素。用 tt 代表队尾, q[tt] 就是队尾元素, q[tt + 1] 就是下一次入队,元素应该放的位置。[hh, tt] 左闭右闭,代表队列中元素所在的区间。原创 2022-10-19 20:32:22 · 147 阅读 · 0 评论 -
数组模拟栈
众所周知,栈是一种后入先出的数据结构,与队列不同,队列是一种先入先出的数据结构,二者虽有差异,但是有许多相似之处。对后面知识的学习也起到承上启下的作用。本文主要介绍用数组模拟栈。1.入栈 push_back();此时要判断栈是否溢出。2.出栈 pop_back();此时要判断栈是否为空。4.判断栈是否为空。原创 2022-10-19 14:27:53 · 573 阅读 · 0 评论 -
结构体实现链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。因此我们可以通过结构体,结构体指针来实现一个单链表,包括基本的增删查改。原创 2022-10-19 18:13:56 · 1240 阅读 · 0 评论 -
数组模拟静态链表
静态链表相比结构的实现的动态数组,速度更快,操作开销更小,常用作竞赛中。原创 2022-10-17 16:24:16 · 195 阅读 · 0 评论