ruby 链表(脏)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 链表(脏)相关的知识,希望对你有一定的参考价值。

require 'pp'

class LinkedList
  attr_accessor :head

  def initialize(head=nil)
    @head = head
    head
  end

  def add_to_head(node)
    node.next = @head
    @head = node
    node
  end

  def add_to_tail(node)
    last = traverse
    last.next = node
    node
  end

  def traverse
    runner = @head
    while(runner.next)
      runner = runner.next
    end
    runner
  end

  def has_value(value)
    runner = @head
    while(runner.next)
      if runner.value == value
        pp "value found:#{value} on Node:#{runner}"
        break
      end
      runner = runner.next
    end
  end

end


class Node
  attr_accessor :next, :value
  def initialize(value)
    @value = value
    @nxt = nil
  end
end

node_1 = Node.new("node_1")
node_2 = Node.new("node_2")
node_3 = Node.new("node_3")
node_4 = Node.new("node_4")
node_5 = Node.new("node_5")

list = LinkedList.new(node_1)
list.add_to_head node_2
list.add_to_head node_3
list.add_to_head node_4
list.add_to_head node_5


node_6 = Node.new("node_6")
list.add_to_tail(node_6)
pp list


list.has_value("node_3")

以上是关于ruby 链表(脏)的主要内容,如果未能解决你的问题,请参考以下文章

ruby 中没有扩展数组的最佳链表?

Mysql——flush链表

Ruby | 再好的墙布也需要保养,请你把我放在心上

Mysql原理篇之Innodb如何调整磁盘与CPU之间的矛盾--07

25.redis集群搭建笔记

脏数据的预防及处理