热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

vuedomdiff乱序排序

乱序前提:就是头头,尾尾,头尾,尾头都不相同事例:ABCDF老节点NACME新节点1.头和头比N移动到A前面,如果不一样那么将新节点头节点插入到老节点头节点前面,新节点头指针向后移



乱序前提: 就是头头,尾尾,头尾,尾头 都不相同

事例:

ABCDF 老节点
NACME 新节点

1.头和头比

N移动到A前面 ,如果不一样那么将新节点头节点插入到老节点头节点前面,新节点头指针向后移动
结果:
NABCDF 头节点位置A (没动过)
NACME 头节点位置A (从N 移动到 A)

2.头和头继续比较

新老节点头部节点相同,新老节点头部指针同时向后移动
结果:
NABCDF 头节点位置B(从A 移动到 B)
NACME 头节点位置C(从A 移动到 C)

3.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找到与新节点相同的C,将C节点移动到老节点头指针的前面,C位置用null代替,新节点头指针向后移动
结果:
NACB null DF 头节点位置B(没移动过)
NACME 头节点位置C(从C 移动到 M)

注意:下面的比较略过null 因为比对也没结果 遇到null 指针直接跳过

4.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找不到与新节点相同的M,将M节点插入到老节点头指针的前面,新节点头指针向后移动
结果:
NACMB null DF 头节点位置B(没移动过)
NACME 头节点位置C(从M 移动到 E)

5.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找不到与新节点相同的E,将E节点插入到老节点头指针的前面
结果:
NACMEB null DF 头节点位置B(没移动过)
NACME 头节点位置C(E节点最后了不需要移动)

新节点是最后一项 直接删除老节点头指针及其后面所有



推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 本文详细介绍了如何在ECharts中使用线性渐变色,通过echarts.graphic.LinearGradient方法实现。文章不仅提供了完整的代码示例,还解释了各个参数的具体含义及其应用场景。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 本文详细介绍了浏览器的同源策略及其重要性,并探讨了多种实现跨域访问的方法。同源策略是浏览器的一项核心安全机制,确保不同源的客户端脚本无法在未经授权的情况下读取或修改其他来源的资源。例如,a.com下的JavaScript代码通过AJAX请求获取b.com的数据将被阻止。 ... [详细]
  • 本文介绍了在Angular中,如何有效地监听由ngFor指令生成的DOM元素的事件,并提供了具体的实现方法和示例代码。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
author-avatar
心痛则痛1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有