头插法

来自GSXAB的知识库

头插法指通过不断在链表头部插入元素来构造链表的算法。也指这一算法中,向链表头部插入一个元素这一步骤的操作。

这一算法将要插入链表的元素倒序,作为新结点插入,这样每个结点都会成为最前面的结点,最终就能构造出顺序。

算法

头插法中:

  1. 将每个元素倒序插入链表头部。

将一个元素插入头部:

  1. 构造新的结点,将要插入的元素放在结点的数据域中。
  2. 使新结点的链接指向原链表。
  3. 使头指针或头结点的链接指向新结点。
  4. (若是双链表,或者说存在反向链接)修改原头结点的反向链接指向这一结点,这一结点的反向链接指向头结点或空。

linked_list_head_insert.svg

对于多个连续插入的情况,头指针指向新结点、改变当前结点的反向链接两步都会被覆盖,只需要在循环外为最后一个头结点执行。