![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
数据结构与算法的收集地
摆烂菜鸡沧996
非科班,试图转型ing.
底层菜鸡
展开
-
【笔记整理】数组模拟邻接表存储图 及图的遍历
图的存储:(有向图/无向图) 领接矩阵:g[N][N],适合稠密图,占用空间大,O(N*N)。 邻接表:适合稀疏图,占用空间小。 邻接表 数组模拟邻接表定义:(存储无向图) const N=1E5+5,M=2*N; int h[N],e[M],ne[M],idx; N:表示预定义图的顶点个数; M:表示预定义边的条数。 h[i]:表示邻接表的表头结点; e[i]:存储某结点信息; ne[i]:表示结点指向的下一个点的下标。 邻接表初始化: memset(h,-1,sizeof h); m原创 2021-10-21 01:56:11 · 1260 阅读 · 1 评论 -
【笔记整理】数组模拟栈/队列 及其应用
模拟栈 单调栈 模拟队列 滑动窗口原创 2021-10-01 02:30:29 · 128 阅读 · 0 评论 -
【笔记整理】数组模拟单链表/双链表
为什么要使用数组模拟链表? 链表常在面试中被问到。 但是在笔试题中,由于数据的规模在1w~10w级别,每次new一个Node速度很慢,导致程序无法在1s内跑完。用数组模拟链表,可以解决程序运行速度的问题。(用空间换时间) 链表的类型: 单链表:用于创建邻接表(常在树与图的问题中出现); 双链表:用于优化某些问题。 单链表 一般结构体形式的单链表定义: struct Node{ int value; Node* next; }; 数组模拟的思想: 以下标index为指针,使用两个数组对分别记录单.原创 2021-09-27 00:43:59 · 147 阅读 · 0 评论