首页 > 其他分享 >线性表链式存储的骚操作

线性表链式存储的骚操作

时间:2024-12-10 23:44:10浏览次数:4  
标签:存储 遍历 线性表 元素 链表 中间 链式 节点 指针

快慢指针的应用

快慢指针的思想是在进行链表遍历的时候,用两个指针同时指向链头,每次移动的步长不一样。最后的遍历的结果就是,快的已经走完了,慢的还在链表中间的某一个节点上。

  1. 使用场景,一次遍历,定位链表中指定位置。这里的位置是相对位置,比如中间位置,三分之二位置,或者是三分之一位置等
  2. 判断一个链表是否是回文结构,没有空间消耗的情况下可以使用该方式。可以使用快慢指针定位到中间元素以后,从中间元素到最后的元素,反向操作链表的指针。然后分别中两段开始遍历进行对比,到中间结束。还有方法二:当定位到中间节点后,可以把中间节点到尾节点中间的元素入栈,然后一个个出栈和链头开始遍历的进行对比。

单链表排序

可以用三个链表分段记录,然后进行合并思想来解决。分别定义六个指针变量。hs,he,ms,me,bs,be,分别代表前面连接的开始结束,中间链表的开始结束,后面链表的开始结束,并初始值为null。取一个数x作为比较参数,并从头开始遍历链表进行大小比较。<x就确实是在放在左边链表了,>x就确定是右边链表了,==就中间了链表。

单个链表是否为环链

  1. 普通方法可以放在集合中判断,当放入已经存在的节点的时候就是入环的节点。
  2. 快慢指针应用,慢指针一次一步,快指针一次两步,环结构必相交。

一次遍历,奇偶拆分

用两个指针,一个指向头指针,一个指向第二个元素元素指针,一个移动两步即可。

标签:存储,遍历,线性表,元素,链表,中间,链式,节点,指针
From: https://www.cnblogs.com/euler-blog/p/18598364

相关文章

  • 2、存储容量和存储地址空间的转换
    1、注意点存储容量=字数*位数,字数即地址总数存储空间=末地址-首地址+1字长:计算机一次处理的二进制位数2、例题:(1)某计算机的内存以字节编址,地址范围为30000H到AFFFFH,求存储容量。存储空间=地址总数= AFFFFH- 30000H+1=80000H=1000000000000000000......
  • 理解大小端问题:一文搞懂存储与顺序
    在计算机系统中,大小端问题(Endianness)是一个基础但重要的概念,它涉及多字节数据在内存中的存储顺序。本文将介绍大小端的定义、产生原因、应用场景,以及如何正确理解和使用它。1.什么是大小端?大端序(Big-Endian)在大端序存储方式中,数据的高字节(MostSignificantByte,MSB)存储在......
  • js中的数字在电脑内存储为多少Byte?
    在JavaScript中,所有的数字都以64位双精度浮点数的形式存储,符合IEEE754标准。这意味着它们占用8个字节(8bytes*8bits/byte=64bits)的内存。需要注意的是,即使是整数,在JavaScript内部也以这种浮点数格式存储。没有独立的整数类型。这与一些其他语言(如C或Ja......
  • Windows事件日志文件 .evt 和 .evtx 是用于存储和管理系统、应用程序、和安全事件的两
    Windows事件日志文件.evt和.evtx是用于存储和管理系统、应用程序、和安全事件的两种文件格式。它们在Windows操作系统中都起到了记录日志的作用,但有一些关键的差异。以下是.evt和.evtx文件格式的对比表格:特性.evt文件.evtx文件文件扩展名.evt.evtx引入......
  • float存储原理
    float占用4字节(32位),各bit的用途 31位:符号位,正数为0,负数为1。 23~30位:(指数部分,共8位):小数点移动位数+127。比如:小数点左移2位就是2+127,右移3位就是-3+127 0~22位:(尾数部分,共23位)浮点数十进制转二进制过程1,整数部分除2取余,直到商为0,然后逆序排列得到的余数,如:十进制12......
  • StarRocks 的架构、数据存储及表设计
    1.架构1.1.整体架构StarRocks的架构相对简单。(1).整个系统只包含两种类型的组件,前端(FE)和后端(BE),StarRocks不依赖任何外部组件,简化了部署和维护。(2).FE和BE可以在不停机的情况下横向扩展。(3).StarRocks具有元数据和服务数据的复制机制,这增加了数据的可靠性,并有效地防......
  • 使用纹理的RGBA通道存储float类型数值
    有些情况下,单通道8位的数据精度无法支持我们的需求,就可以使用更多通道来实现更高精度的浮点数存储。其具体方法是将一个float类型的数据划分成多个部分,分别存储到不同的纹理颜色通道中。UnityCG.cginc实现代码inlinefloat4EncodeFloatRGBA(floatv){float4k......
  • 【查找】线性表的查找
        目录1.顺序查找利用顺序表的实现顺序查找设置监视哨的顺序查找 利用链表实现顺序查找顺序查找的优缺点2.折半查找(二分查找)折半查找的优缺点3.分块查找分块查找的优缺点1.顺序查找时间复杂度:O(n)存储结构:顺序查找可适用于线性表的顺序存储和链式......
  • 查看磁盘挂载情况以及挂载和卸载磁盘(一般是阿里云块存储-ESSD云盘)
    一:查看硬盘挂载情况命令lsblk lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系。 测试一下:root@iZijvdp1z0m5q4Z:/usr#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTvda252:0060G0disk└─vda1252:1060G0part/......
  • 云原生存储编排器Rook
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.Rook概述1.rook概述2.Rook和K8S版本对应关系二.k8s对接Rook1.部署Rook2.K8S对接ceph一.Rook概述1.rook概述R......