简单的循环链表

版权声明:任先阳 任 先 阳 任先 先阳,ifgm.cn、www.ifgm.cn、nvcc.cc、www.nvcc.cc、sbfox.com、www.sbfox.com https://blog.csdn.net/qq_39571197/article/details/85232157
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>循环链表</title>
</head>
<body>
<script>
  /* 先造一个循环链表 */
  class Node{
    constructor(value) {
      this.value = value;
      this.next = null;
    }
  }

  class List{
    constructor() {
      this.head = new Node('head');
      this.head.next = this.head; // 循环链表,首尾元素关联,此时只有一个元素
    }

    find(value) {
      let targetNode = this.head;
      while (targetNode.value !== value) {
        targetNode = targetNode.next;
      }
      return targetNode || null;
    }

    swap(newNode, targetNode) {
      newNode.next = targetNode.next;
      targetNode.next = newNode;
    }

    insert(target, value) {
      if (arguments.length < 2) throw('未插入元素');
      const targetNode = this.find(target);
      if (!targetNode) return false;
      const newNode = new Node(value);
      this.swap(newNode, targetNode);
      return true;
    }

    push(value) {
      let targetNode = this.head;
      while (targetNode.next && targetNode.next !== this.head) {
        targetNode = targetNode.next;
      }
      const newNode = new Node(value);
      this.swap(newNode, targetNode);
    }
  }

  const list = new List();
  list.push('111');
  list.push('222');
  list.push('22222');
  list.insert('111', '33333');
  console.log(list);

</script>
</body>
</html>

 

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试