Singly Linked List · Pointer Visualization
链表 · 节点与指针可视化
每个节点保存数据和下一个节点的引用。逐步观察遍历、插入、删除和反转,不再把链表当作连续数组。
链表操作 · C
READY执行记录
0 / 0节点与 next 引用
READY已连接节点:3 / 12访问次数:0返回值:—
从 head 开始遍历
当前访问/改指针新节点已断开节点
如何理解链表?
位置从 0 开始。插入允许位置 0 到长度,删除允许位置 0 到长度减 1。查找返回第一个匹配位置,未找到返回 -1。
结构体、二级指针、节点分配/释放和反转步骤的解释,见页面下方的带注释代码。N1 等仅为可视化身份标识,不是真实内存地址。
反转的中间状态可能出现暂时未从 head 连通的节点,仍会保留显示,便于对照注释观察指针变化。
左侧 C 代码用于教学展示,浏览器由 JavaScript 模型模拟相同操作并同步高亮,不编译执行 C。定位前驱、查找和反转需 O(n),修改连接为 O(1);演示限制最多 12 个节点。字符串最多 12 字节,界面值用于演示,不模拟 C 的字符编码和分配失败。
C Code · Annotated Guide
链表代码解释 · 中文注释版
解释直接写在对应代码的注释中,独立于上方操作面板。绿色文字为注释,其余颜色区分类型、关键字、函数和字符串。
一、头文件与节点结构
二、插入节点(头插、尾插与按位置插入)
三、按位置删除节点
四、查找第一个匹配节点
五、原地反转链表
使用前提:头指针的地址必须有效,链表必须无环,输入字符串必须以空字符结束;删除的输出缓冲区至少为 13 字节。此处为教学 C 代码,不由浏览器编译执行;定位、查找与反转为 O(n),定位后的连接修改为 O(1)。
评论与讨论
评论保存在 GitHub Issues,登录 GitHub 后即可参与讨论。
评论暂未开放,站点管理员尚未配置 GitHub OAuth。
前往 GitHub Issues