ICode9

精准搜索请尝试: 精确搜索
  • C++迭代器失效的几种情况2022-05-16 23:01:30

    1. 对于序列型容器:vector, deque 删除当前元素:从当前位置到之后全部位置迭代器失效;(可以用 it=res.erase(it); 来实现迭代器的更新追踪) 添加一个元素:当添加元素后,导致了容器扩容的操作,则全部迭代器失效;(可以用 it=res.push(it);) 插入一个元素:当添加的元素在首尾位置以外,所有迭代器

  • 磊磊零基础打卡算法:day12 c++静态单链表2022-05-15 18:01:33

    5.15 静态单链表 简单的方法: 成员变量: int e[N],//存放节点的值 ne[N],存放结点的next head,头结点指针 idx;变化的指针 初始化: void init() { head = -1;//头结点最初指向-1 idx = 0;//初始的位移指针是0; } //初始化链表 在头部位置添加: void add_to_head

  • 2022-05-15 00:01:49

    概念:   堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左子节点和右子节点的值。 大根堆:   最大堆(大根堆):根结点的键值是所有堆结点键值中最大者。 小根堆:   最小堆(小根堆):根结点的键值是所有堆结点键值中最小者。    

  • 数据结构学习小记-树2022-05-14 22:01:15

    树 1.一种非线性结构,属于图均属于非线性结构。 树是由结点或顶点和边组成的,不存在任何环的结构,没有结点的树称为空,null,一棵非空的树包括一个根节点,还有很多附加结点,所有结点构成一个多级分层结构。 树的定义:n个节点组成的有限集合。n=0,空树;n>0,1个根节点,m个互不相交的有限集,

  • (转)二叉树的建立 C语言描述2022-05-14 10:34:04

    这篇blog转自笔者的CSDN账号,为笔者学习《数据结构》课程时所撰写,现转至博客园,仅作归档用。 原文的撰写时间是2021-05-14。 学校的《数据结构》教材给出的二叉树的建立算法有点问题,因此自己稍加修改以使之可以使用。 结点定义 typedef int element_type; typedef struct binary_tre

  • Solution Set -「OurOJ Contest #2587」浅写2022-05-12 23:00:49

    \(\mathscr A\sim\)「OurOJ #47030」_   Link & Submission & Tags:「A.DP-计数 DP」「A.数学-Stirling 数/反演」「B.Tricks」   我们习惯于用组合数拆形如 \(l^k\) 的贡献,可惜 \(\mathcal O(nk^2)\) 的复杂度不被允许。我们需要找到更优秀的贡献拆分方法。   关于幂,可以想

  • 2022-5-12 链表2022-05-12 21:01:47

    876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * Lis

  • JavaScript基础——节点操作2022-05-12 01:32:41

    节点概念 节点类型 节点常见类型有以下几种: 元素结点    Node.ELEMENT_NODE(1) 属性结点    Node.ATTRIBUTE_NODE(2) 文本结点    Node.TEXT_NODE(3) 节点层级   利用DOM树可以将结点划分为不同层级关系,常见的是父子级关系 一、父级节点 node.parentNode 例如:实

  • ZJOI2022 做题记录2022-05-07 12:36:06

    这一场质量挺高的。 D1T1 树 枚举第一棵树的叶子集合,第二棵树的叶子集合为恰好,容斥成钦定:(\(f_1(S)\) 为第一棵树叶子集合为 \(S\) 的方案数,\(f_2(S)\) 为第二棵树非叶子集合为 \(S\) 的方案数) \[\sum_Sf_1(S)\sum_{T}(-1)^{|S|-|T|}f_2(T)=\sum_S(-1)^{|S|}f_1(S)\sum_{T}(-1)^{|T

  • 求二叉树中节点间的宽度2022-05-07 01:00:56

    标题:求二叉树中节点间的宽度 题目链接:https://www.luogu.com.cn/problem/T236448?contestId=67903 题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:4 宽度:4(同一层最多结点个数) 结点间距离: ⑧→⑥为8 (3×2+2=8) ⑥→⑦为3 (1×2+1=3) 注:结点间距离的定义:由结

  • lc876. 链表的中间结点2022-05-05 16:35:04

    # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def middleNode(self, head: ListNode) -> ListNode: slow = head

  • 动态规划:P1040[NOIP2003 提高组] 加分二叉树 树形DP2022-05-05 10:34:36

    P1040[NOIP2003 提高组] 加分二叉树 题目传送门:P1040 [NOIP2003 提高组] 加分二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目:   思路:   题目给的是中序遍历,所以一定是根左右,在序列中,对于每一个结点,他左边的数字可能就是他的左结点,或者左子树为空,右边的数字可能就是

  • 处理机管理——死锁的检测和解除2022-05-04 06:31:16

    如果系统中既不采取预防死锁的措施,也不采取避免死锁的措施,系统就很可能发生死锁。在这种情况下,系统应当提供两个算法: 1.死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁 2.死锁解除算法:当认定系统中己经发生了死锁,利用该算法可将系统从死锁状态中解脱出来 为了能对系统

  • 02-LINUX内核源码分析之内存管理专题(一)-- 第010讲 引导内存分配器原理2022-05-03 18:32:24

    知识点:bootmem分配器memblock分配器 一、bootmem分配器--临时引导内存分配器 在内核初始化的过程中需要分配内存,内核提供临时的引导内存分配器,在页分配器和块分配器初始化完成之后,把空闲的物理页交给页分配器管理,丢弃引导内存分配器bootmem分配器定义的数据结构,内核源码如下:D:\l

  • 学习随笔2022-05-02 21:33:38

    今天继续LeetCode上的题,明天准备写写最近学的springmvc 题目一:剑指Offer上的从尾到头打印链表,就是从链表的尾部输出链表,而且用数组返回,思路是利用栈的特点,完成 public class Office06 { public static void main(String[] args) { ListNode head=null; //使

  • [AcWing 836] 合并集合2022-05-02 21:00:52

    点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int p[N]; int find(int x) { if (p[x] != x) p[x] = find(p[x]); return p[x]; } int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; i

  • P3884 [JLOI2009]二叉树问题2022-05-02 16:34:05

    题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:4 宽度:4(同一层最多结点个数) 结点间距离: ⑧→⑥为8 (3×2+2=8) ⑥→⑦为3 (1×2+1=3) 注:结点间距离的定义:由结点向根方向(上行方向)时的边数×2, 与由根向叶结点方向(下行方向)时的边数之和。 输入格式 输入文件第

  • 数据挖掘(决策树)—R实现2022-05-02 16:02:42

    决策树 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。分类树(决策树)是一种十分常用的分类方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到

  • 【链表】【leetCode高频】: 19. 删除链表的倒数第 N 个结点2022-05-01 23:01:22

    1、题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。       2、算法分析 知识补充: 。      分析: 题目要求是删除链表中倒数第N个结点。可以使用两个指针slow,fast。 重点是找到被删除结点的前一个结点。 ①定义一个头结点指向head ②slow指向头结点

  • 【leetcode】链表的中间结点2022-05-01 19:04:52

    题目:876. 链表的中间结点 - 力扣(LeetCode) (leetcode-cn.com)   思路:   该题可以使用快慢指针的方法,根据慢指针走1步,快指针走2步的情况,   a.如果链表的节点个数为奇数,则有一个中间节点:   可以推出当快指针fast到达链表最后一个节点的时候(fast != null且fast.next == null),则慢指

  • 二叉树的前序、中序、后序遍历(个人笔记)2022-05-01 14:02:56

    引用网址:https://zhuanlan.zhihu.com/p/73438175 二叉树的前序、中序、后序遍历 二叉树的相关概念请参考:二叉树_百度百科   二叉树: 前序遍历A-B-D-F-G-H-I-E-C 中序遍历F-D-H-G-I-B-E-A-C 后序遍历F-H-I-G-D-E-B-C-A 前序(根左右),中序(左根右),后序(左右根) 例题1: 已知某二叉

  • DFS序与欧拉序2022-04-30 20:00:43

    DFS序 DFS序代表着树从根节点开始进行DFS的节点的遍历顺序。 那么上图的DFS序显然为1,2,4,7,8,9,5,3,6 容易发现一棵子树内所有结点的DFS序是连续的,并且根节点的DFS序最小。那么假设我们已经有整颗树的DFS序为dfn[u], 子树的大小为size[u],就可以得到结点u的所有子树对应的DFS序区间为[dfn[

  • 数据结构-单链表2022-04-30 12:34:37

    单链表的定义 单链表是线性结构,每个结点都有一个数据域和指针域,用以指向后继结点,可以通过前驱结点中的指针域中的地址信息找到后继结点的位置,所以链表有一个缺点就是不能直接找到某个结点,而是要从头结点开始依次查找,即链表不支持随机访问。 结构体表示如下: #include <iostream> us

  • Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)2022-04-28 09:35:52

    什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找。 本文所涉及到的特殊结构性质的树包括: 二叉排序树。 平衡二叉树。 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求,也得益于这种限制,在查询某一个结点时会带来性能上的优势和操作上的方便。

  • LeetCode 0086 Partition List2022-04-28 07:31:12

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 新建两个头结点,left存放小于x的结点,right存放大于等于x的结点值。从head遍历原始链表,结点值小于x挂left,大于等于x挂right,遍历结束后把right挂到left后面。 2、代码实现 package Q0099.Q0086PartitionList; import DataStructu

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有