首页 > 其他分享 >数组模拟链表

数组模拟链表

时间:2023-03-11 10:47:56浏览次数:32  
标签:结点 指向 idx ne 链表 数组 head 模拟

单链表


数组模拟链表比动态链表效率更高。


\(head\) 作为指向头结点的指针,\(idx\) 作为当前结点索引,每次执行完操作都要idx++;

数组 \(e[]\) 用来保存当前结点的值,\(ne[]\) 用来保存指向的下一个结点编号


将 \(-1\) 作为起始,表示结点为空,\(idx\) 从 \(0\) 开始,第一个添加的结点编号为 \(0\)。


在头结点插入就是将 \(idx\) 指向的结点变成 \(head\) 所指向的结点,再将 \(head\) 指向 \(idx\) 这个结点。


在编号为 \(k\) 的结点后插入同理。





删除 \(k\) 结点后面一个结点,就直接将 \(k\) 结点所指向的结点变为原本 \(k\) 指向的结点的下一个结点,即ne[ne[k]]


标签:结点,指向,idx,ne,链表,数组,head,模拟
From: https://www.cnblogs.com/juniexd/p/17205392.html

相关文章

  • 1059.使数组和能被P整除
    给你一个长度为n的整数数组nums和一个整数p,请你选出一个非空的子数组使得该子数组元素和对p的余数是0,但不能选出全部元素。计算这个子数组的长度,如果不存在这样......
  • 0310 模拟赛记录
    0310模拟赛记录problemsetlink。\(\text{div1}100+90+20=210\)。题解1A/2B-snow\(\text{difficulty}=2.5,3\)。\(\text{tags}=线段树\)。实际上倒数没有意义......
  • 代码随想录-数组
    二分查找704.二分查找-力扣(LeetCode)intsearch(int*nums,intnumsSize,inttarget){intleft=0;intright=numsSize-1;intmid=0;i......
  • 寻找两个正序数组的中位数
    寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时......
  • ES6-ES11 ES10数组方法扩展-flat与flatMap
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • 单链表经典面试题
    单链表经典面试题1.求单链表中有效节点的个数思路:直接遍历节点个数即可,如果带头节点则不统计头节点方法代码:/***遍历求链表有效节点个数,但不统计头节点*@param......
  • java-IO-字节流读数据(一次读一个字节数组数据)
         ......
  • Leetcode24. 两两交换链表中的节点
    题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 思路:使用虚拟头结点,这样会......
  • java学习日记20230310-数组
    数组数组/排序/查找数组可以存放多个统一类型的数据,数组本身也是一种数据类型,引用类型;    array.length标识数组的大小/长度数组的定义数据类型[]数组名......
  • numpy数组中根据判定条件提取索引位置
    要求:我有两个numpy类型的数组,第一个维度都是相同的,其中一个数组中都是0或者1,如果是1,则将两一个数组中的相同位置提取出来形成一个新的numpy数组可以使用numpy的boolean......