标签: 数据结构

5 篇文章

数据结构|树
树 节点数量 = 边数 + 1 深度/高度 最高 节点深度 从根节点(深度为0)开始, 节点高度 从该节点下面的叶子节点(高度为0)开始数 节点的度 子节点的数量 广度优先遍历 层序遍历 使用队列,初始时将根节点加入,头指针指向根节点,之后的每次都加入头指针所指节点的子节点,并且头指针后移 深度优先遍历 使用栈,先将根节点入栈,之后每次入栈栈顶节点…
Python刷题指南
输入输出 n,k,a,b = map(int,input().split()) n, v = map(int, input().split()) dst = deque(map(int, input().split())) 内置数据结构 双端队列 from collections import deque dst = deque() dst[…
数据结构|栈与队列
栈 栈是一种线性的数据结构,遵循先进后出的原则,最后入栈的元素最先被去除,也就是说栈只能在栈顶进行插入和删除操作,而不能在栈中间或底部进行操作。 实现 #include <bits/stdc++.h> using namespace std; struct Stack { private: int size; int top; int …
数据结构|链表
节点 我们定义一个节点,这个节点包括该节点的值与下一个节点的地址,节点是分散不连续保存在内存中的,在C++中我们可以通过构造函数的方式快速新建一个节点。 struct ListNode { //节点保存的值 int val; //用于指向下一个节点 ListNode *next; //节点构造函数 ListNode(int x) : val(x),…
数据结构|浅谈数组与链表
很多编程语言的标准库中都实现了很多数据结构,方便开发者快速上手,避免重复造轮子,例如Java中的XXXList,Go的slice以及container包中的list包。他们大多是基于数组与链表这两个基本数据结构的封装,也是两种不同的数据存储方式,这两种数据结构究竟有何异同? 数组 在内存中,数组由一段连续的内存组成,且长度固定,如图所示。 查找元素…