首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Deep learning进阶路

    2-4 线性表之双链表

    2-4 线性表之双链表 双向链表除了相当于在单链表的基础上,每个结点多了一个指针域prior,用于存储其直接前驱的地址。同时保留有next,用于存储其直接后继的地址。 ? 所以对于带头结点的双链表,其实很多操作都和 带头结点的单链表是一样的,因为你完全可以忽视掉它有个 prior指针,这样就可以当做单链表来使用。 所以,这里只写一下定义和初始化的过程,其他的操作基本可以参照带头结点的单链表。 *h) { (*h) = new dul_node; (*h)->next = nullptr; (*h)->prior = nullptr; } 一般来说,我们都是用双链表来构造循环链表 ,但是要注意一点: 我那个程序是针对没有被初始化过的链表指针,因为那个函数里面有初始化语句, 所以如果你输入一个已经被初始化过的链表,哪怕是空链表,的头指针,也会有个问题存在, 那就是头指针的值被更新为

    58120发布于 2019-07-02
  • 来自专栏悟道

    2-4 快速乘法 模板

    适用于不让用/ * 的情况实现某些结果 ! /** * 快速乘法 * * @param a 乘数 * @param b 被乘数 * @return 积 */ public static long quickMulti(long a, long b) { long result = 0; while (b > 0) { if ((b & 1) == 1) {

    52610发布于 2021-06-01
  • 来自专栏刷题笔记

    2-4 另类堆栈 (20 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/101049523 2-4 另类堆栈 (20 分) 在栈的顺序存储实现中,另有一种方法是将Top

    82430发布于 2019-11-08
  • 来自专栏Hank’s Blog

    2-4 R语言基础 列表

    > l1 <- list("a",2,10L,3+4i,TRUE) #每个元素没有名字 > l1 [[1]] [1] "a"

    58020发布于 2020-09-16
  • 来自专栏IT技术圈

    练习2-4 温度转换 (5分)

    本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

    1.1K10发布于 2021-02-24
  • 来自专栏AI机器学习与深度学习算法

    学习分类 2-4 感知机权重向量的更新

    下面直接给出权重向量的更新表达式,然后通过可视化的方式来直观的展示权重向量的更新。

    1.4K40编辑于 2022-11-08
  • 来自专栏育种数据分析之放飞自我

    笔记 | GWAS 操作流程2-4:哈温平衡检验

    「什么是哈温平衡?」 ❝哈迪-温伯格(Hardy-Weinberg)法则 哈迪-温伯格(Hardy-Weinberg)法则是群体遗传中最重要的原理,它解释了繁殖如何影响群体的基因和基因型频率。这个法则是用Hardy,G.H (英国数学家) 和Weinberg,W.(德国医生)两位学者的姓来命名的,他们于同一年(1908年)各自发现了这一法则。他们提出在一个不发生突变、迁移和选择的无限大的随机交配的群体中,基因频率和基因型频率将逐代保持不变。---百度百科 ❞ 「怎么做哈温平衡检验?」 ❝「卡方适合性检验!」

    5.5K21发布于 2020-04-27
  • 来自专栏刷题笔记

    【并查集】2-4 朋友圈 (25 分)

    2-4 朋友圈 (25 分) 某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。

    1K10发布于 2020-06-23
  • 来自专栏嵌入式学习

    链表——新建链表

    #include <stdio.h> #include <stdlib.h> #include <string.h> struct node { int data; struct node *pNext; }; //新建node struct node * create_node(int data) { struct node *p = (struct node *) malloc (sizeof(struct node)); if(NULL == p) {

    1.7K40发布于 2020-09-07
  • 来自专栏学习

    链表篇》---相交链表

    题目链接 相交链表 方法一:哈希集合 判断两个链表是否相交。使用哈希集合存储链表节点。 创建一个哈希Set集合。先将链表A中的节点放入这个集合中。 再遍历链表B。 pA 从链表 headA 的头部开始遍历,pB 从链表 headB 的头部开始遍历。 如果 pA 到达了链表 headA 的末尾(pA == null),就让它跳到链表 headB 的头部继续遍历。 当 pA 到达链表headA的末尾时,pA 被重置为链表headB的头部,这是为了让 pA 开始遍历链表headB。 类似地,当 pB 到达链表headB的末尾时,pB 被重置为链表headA的头部。 通过这种方式,两个指针在遍历完自己的链表后,会从对方的链表头开始遍历。 由于两个指针都会遍历两个链表的总长度,无论两个链表的长度是否相同,最终两个指针会在相交节点处相遇,或者同时到达链表的末尾(即没有相交节点的情况)。

    31810编辑于 2024-10-24
  • 来自专栏csdn-nagiY

    【Leetcode】反转链表 合并链表 相交链表 链表的回文结构

    【Leetcode21】合并两个有序链表 1.链接 合并两个有序链表 2.题目再现 3.三指针尾插法 思路:创建一个新的链表,分别遍历两个链表,小的就尾插到新链表,然后指针向后走一步,直到有一方为空时就结束循环 ;结束循环后,判断哪个链表不为空,把不为空的尾插到新链表中去。 分表遍历两个链表,比较其值,小的尾插到新链表,并向后走一步(如果一样大,那么随便取哪一个都行); 4.结束循环后,判断哪个链表不为空,尾插到新链表。 【Leetcode160】相交链表 1.链接 相交链表 2.题目再现 3.解法 1.先分别遍历两个链表,记录下两个链表的长度; 2.如果两个链表尾节点的地址一样,则说明它们相交,否则不相交,(注意是地址不是值 ); 3.求出两个链表长度的差gap; 4.先让长的链表走差距步gap,短的链表先不动; 5.然后两个链表同时走一步,比较每走一步时两个链表当前节点的地址,如果一样,则说明找到了它们相交的起始位置

    41610编辑于 2024-01-23
  • 来自专栏韩曙亮的移动开发专栏

    【数据结构】线性表 ② ( 链式存储结构 - 链表 | 链表分类 - 单链表链表 非循环链表 循环链表 | 链表优缺点 )

    一、链式存储结构 - 链表 链式存储结构 就是 链表 LinkedList ; 链式存储结构 ( 链表 ) : 数据 存储在 节点 中 , 每个节点包含 数据值 和 指向下一个节点的指针 ; 通过节点之间的指针关系 Object data; // 指向下一个节点 Node next; // 指向上一个节点 Node last; } 二、链表分类 - 单链表 / 双链表 / 非循环链表 / 循环链表链表 与 双链表 : 单链表 : 上述链表是 单链表 , 单链表 只有一个指针 指向下一个节点 ; 双链表 : 还有一种链表是 双链表 , 双链表 有两个指针 , 一个指向下一个节点 , 一个指向上一个节点 ; 循环链表 : 如果 最后一个节点的指针 指向 第一个节点 , 那么这个链表就是循环链表 ; 链表可以分为以下四类 : 单链表 单循环链表链表 双循环链表 三、链表优缺点 链表 LinkedList 链表 LinkedList 缺点: 查询 性能低 : 如果要访问 链表中 指定位置的元素 , 需要从头节点开始遍历到目标位置 , 时间复杂度为O(n)。

    84740编辑于 2023-10-11
  • 来自专栏嵌入式项目开发

    C语言-链表(单向链表、双向链表)

    ,而且链表的空间是存储在堆上面的,可以动态分配,释放。 链表的每个节点就是一个结构体变量,节点里有一个或者两个指针,可以保存上一个节点和下一个节点的地址,方便遍历链表,删除、插入节点时定位位置。 2. 实现的功能如下: 初始化链表头 插入节点的函数(链表任意位置插入,链表尾插入) 删除节点的函数(链表任意位置删除、链表尾删除) 遍历链表,输出链表里的所有信息 #include <stdio.h> #include 找到链表尾 while(next_p! 找到链表尾 if(head!

    3.3K41编辑于 2022-01-07
  • 来自专栏P_M_P学习笔记

    Leetcode:相交链表,环形链表,环形链表||

    相交链表 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 思路: 先分别遍历两个链表,得出两个链表的节点个数和两个链表节点数的差,再创建两个指针指向两个链表,让节点数较多的链表的指针先遍历这个差值的节点数,然后两个指针再同时遍历,当两个指针指向的节点的地址相同时 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。

    47510编辑于 2024-01-20
  • 来自专栏P_M_P学习笔记

    【Leetcode】重排链表、旋转链表、反转链表||

    重排链表 题目描述 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 提示: 链表的长度范围为 [1, 5 * 104] 1 <= node.val <= 1000 方法一: 将链表的每一个节点存在数组里,然后用下标访问的方式,交叉连接。 ,然后将中点后的链表翻转成一个新的链表,最后将这个新链表和原链表切割掉中间节点之后的链表合并成一个新的链表,合并方式是交叉合并。 题目描述 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表

    37610编辑于 2024-01-19
  • 来自专栏学习

    链表篇》---反转链表

    题目链接 反转链表 方法一:迭代 循环从第二个节点开始。 首先判断若没节点head为null 或者 若只有一个节点。head.next = null。则返回head。 接下来 定义一个 cur 节点,指向链表的第二个节点。这个 cur 将用于遍历链表。 将当前 head 节点的 next 设为 null,因为它将成为反转链表的末尾节点。 之后 开始遍历链表并反转指针 1.ListNode curNext = cur.next; 保存cur.next的值,防止丢失。 2.cur.next = head 反转链表。 令cur.next指向前一个节点 3.head = cur 设置反转链表的头结点。 假设链表的其余部分已经被反转,现在应该如何反转它前面的部分?

    44310编辑于 2024-10-24
  • 来自专栏学习

    链表篇》---回文链表

    题目传送门 方法一:将值复制到数组中后用双指针法 思路: 1.将链表的值赋值到顺序表当中。 2.使用双指针法,判断顺序表中的值是否是回文。 left++; right--; } return true; } } 方法二:使用栈 思路: 1.先将链表中的值全部入栈 2.遍历链表,若链表元素与栈顶元素相等,则出栈。 3.栈最后为空,返回true。栈不为空返回false。 反转后半部分链表。 判断是否回文。 恢复链表。 返回结果。 isPalindrome(ListNode head) { if (head == null) { return true; } // 找到前半部分链表的尾节点并反转后半部分链表

    24810编辑于 2025-05-31
  • 来自专栏X

    Leetcode|找单链表中点+链表反转+链表合并|143. 重排链表

    1 寻找单链表中点 + 链表反转 + 链表合并 这道题是道综合题,把三个知识点串起来,非常适合复习链表处理的三个技巧 【思路】:观察发现可以把链表后一半进行反转,然后当成两个链表的合并任务即可 class head) return; // 1.寻找链表中点(快慢指针) auto premid = findmid(head); // 2.链表反转(pre/cur auto l1 = head; auto l2 = premid->next; premid->next = nullptr; // 3.链表合并 (先保存next然后穿针引线) merge(l1, l2); } // 合并链表 void merge(ListNode* l1, ListNode* l2) { while (l1 && l2) { // 先保存两个链表的next auto l1next = l1->next; auto l2next

    63430编辑于 2022-01-10
  • 来自专栏PD快充协议

    讲解2-4串锂电池升降压快速充电方案

    XSP30 作为一款支持 PD/QC 快充协议的升降压型锂电池充电 IC,凭借其独特的 2-4 节电池兼容、2A 大电流快充等特性,正悄然改变着便携式设备的充电格局,重新定义人们的充电体验。 它的出现,为 2-4 节串联锂电池的充电管理提供了高效、安全、智能的解决方案,不仅满足了当下消费者对快速充电的需求,也为众多电子设备厂商在产品设计和优化上提供了有力的支持。

    52010编辑于 2025-11-12
  • 来自专栏cwl_Java

    C++编程之美-数字之魅(代码清单2-4)

    代码清单2-4 int Count(BYTE v) { int num = 0; switch (v) { case 0x0:

    17320编辑于 2022-11-30
领券