TypedArray 在线探索器 - 创建并操作二进制缓冲区
创建 ArrayBuffer,用不同 TypedArray 视图读写,观察字节布局和大小端差异。
UD5工具箱
空链表 — 请添加节点
使用上方按钮或输入框添加节点链表(Linked List)是一种线性数据结构,由一系列节点组成。每个节点包含数据域和指针域,指针域存储下一个节点的内存地址。与数组不同,链表的节点在内存中不必连续存储。
| 特性 | 数组 | 链表 |
|---|---|---|
| 内存分配 | 连续内存块 | 分散存储,动态分配 |
| 随机访问 | O(1) 快速 | O(n) 需遍历 |
| 插入/删除 | O(n) 需移动元素 | O(1) 仅修改指针 |
| 空间开销 | 仅存储数据 | 额外存储指针 |
| 缓存友好 | 高(连续内存) | 低(分散存储) |
单向链表:每个节点只有一个指针 next,指向后继节点。只能从头向尾单向遍历。
双向链表:每个节点有两个指针 prev 和 next,分别指向前驱和后继。可以双向遍历。
关键差异:
| 操作 | 单向链表 | 双向链表 |
|---|---|---|
| 头部插入 | O(1) | O(1) |
| 尾部插入 | O(n) 无尾指针 / O(1) 有尾指针 | O(1) |
| 指定位置插入 | O(n) | O(n) |
| 头部删除 | O(1) | O(1) |
| 尾部删除 | O(n) | O(1) |
| 按值查找 | O(n) | O(n) |
| 按索引访问 | O(n) | O(n) |
* 本工具使用数组模拟链表,实际链表操作需通过指针操作完成。
反转单向链表使用三指针法(prev, curr, next),迭代遍历并修改指针方向:
function reverseList(head) {
let prev = null;
let curr = head;
while (curr !== null) {
let next = curr.next; // 保存下一个节点
curr.next = prev; // 反转指针
prev = curr; // prev 前进
curr = next; // curr 前进
}
return prev; // 新的头节点
}
时间复杂度:O(n) | 空间复杂度:O(1)
也可使用递归实现,但递归的空间复杂度为 O(n)。
虽然链表插入/删除操作本身只需修改指针(O(1)),但在实际场景中:
因此在小规模数据场景下,数组的插入删除(虽然理论O(n))可能因缓存友好而更快。
创建 ArrayBuffer,用不同 TypedArray 视图读写,观察字节布局和大小端差异。
选择文件夹并上传,保留相对路径,以树形结构展示所有文件并读取内容。
输入长链接,生成一个伴随随机短码的完整离线URL(可自定义域名前缀)。
分解查询参数,高亮可能存在的SQL注入或XSS模式,辅助安全审查。
编写正则表达式并指定替换模式(如 '$1-$2'),实时查看文本替换结果,支持命名捕获组。
使用多个哈希函数和位数组,演示布隆过滤器的添加和查询,计算误判率。
粘贴 assetlinks.json 内容,检查是否符合 TWA 打包要求,帮助将 PWA 上架应用商店。
为输入框生成常见格式掩码(如电话、日期、信用卡),输出JS实现代码,规范用户输入。
选择表A和表B的样本数据,查看INNER/LEFT/RIGHT/FULL JOIN的韦恩图与实际输出结果。
粘贴多行数据,每行生成独立的二维码并打包下载,适合批量制作标签。
将图片内容加粗白色描边并添加阴影,生成类似聊天贴纸的圆形/方形效果。
填写项目名称、描述、安装步骤等,实时预览并生成完整的 Markdown 格式 README。
从任意分布中抽取样本并绘制均值分布直方图,随着样本量增大趋近正态分布。
收藏想买的商品链接、图片与预算,按优先级排列,便于比价或等待降价。
设置目标日期,生成一个精巧的倒计时代码片段,可嵌入任何网页。
选择 hook 类型(pre-commit、pre-push 等),填入要执行的命令,生成钩子脚本。
将普通英文转换为《我的世界》中附魔台显示的标准银河字母(Standard Galactic Alphabet)。
逐步演示OAuth2授权码、隐式及密码模式交互流程,帮助理解重定向、Token交换与刷新机制。
提供每段应该写什么的提示,辅助填写个性化的求职信内容。
模拟接收包含一次性密码的短信,展示 navigator.credentials.get({otp}) 如何自动提取 OTP 并填入表单。
从内置库随机选取主流浏览器的User-Agent字符串,一键复制用于请求头。
定义脱敏规则(如手机号中间4位星号,邮箱部分隐藏),对 JSON 或 CSV 数据执行批量掩码。
输入包名和两个版本号,在线展示文件变更差异,了解升级带来的影响。
输入Base32密钥手动生成6位动态验证码,兼容Google Authenticator,前端算法实现不联网。
利用浏览器Crypto API生成密码学安全的随机字节序列及对应的整数和十六进制。
输入包含隐私信息的文本,一键将手机号、身份证等部分遮盖。
请求Idle Detection权限,监测用户是否离开或处于空闲状态,实时更新状态。
设计包含头像、姓名、职位、电话和社交链接的专业邮件签名,导出 HTML 代码。
在照片上随机生成大小不同、带阴影的镂空透明圆孔,创造奶酪状的创意卡片。
快速生成PWA所需的manifest.json文件,填写应用名、图标、主题色、启动网址等字段。