用 JavaScript 完成链表操纵 - 前言和目次

TL;DR

我盘算写一个链表操纵的系列,来自 Codewars 的 Linked List 系列 kata ,完成言语是 JavaScript 。这篇是开篇,简朴形貌了一下我写这个的目的,也作为系列的目次。

为何要进修链表

我的年度目的之一就是进修一些数据结构和算法,用于打基础和造就逻辑思维能力。Codewars 上的这个系列同时相符这两点。

链表是常常使用数据结构之一,它以至是某些言语(比方 Elixir)的内置数据结构。经由历程本身完成一个链表和常常使用操纵,能够加深明白这类数据结构的优缺点。

链表经常常使用来演习指针操纵,虽然这只对 C 实用,但 JavaScript 等高等言语中掌握援用的思绪实在也差不多。而且链表也是演习递归的抱负数据结构之一。

基于此,每一个 kata 我都邑只管供应递归和轮回两个版本,某些操纵会完成尾递归以相符问题请求。这是一个很有意义的历程,有时刻递归更好,有时刻轮回更好,也有少数时刻二者都不是最优化的计划。

目次

Codewars 上没有总纲,但每一个 kata 都有全部系列的目次。我列举如下,一共 18 个 kata 。每篇的博客链接会在更新后附上。别的,一切代码 都放在 GitHub 上,代码的更新比博客要快,假如以为对你有协助,请帮我点个赞!

  1. Push & BuildOneTwoThree

  2. Length & Count

  3. Get Nth Node

  4. Insert Nth Node

  5. Sorted Insert

  6. Insert Sort

  7. Append

  8. Remove Duplicates

  9. Move Node

  10. Move Node In-place

  11. Alternating Split

  12. Front back split

  13. Shuffle Merge

  14. Sorted Merge

  15. Merge sort

  16. Sorted Intersect

  17. Iterative Reverse

  18. Recursive Reverse

    原文作者:darkbaby123
    原文地址: https://segmentfault.com/a/1190000007543189
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞