Edited at

[Swift] 連結リスト(ListNode)

More than 1 year has passed since last update.


ListNode(連結リスト)ってなに?

連結リストとは、データ構造の一種であるリストの中で、自分の次、および、前の要素を示す情報(リンク情報)を持つことで、要素を連結(リンク)させたリストのことである。

リストは、データの要素を順番に並べて扱うデータ構造のことである。

Screen Shot 2017-08-01 at 11.26.54 AM.png


デメリット


  • リンクを辿らないと各々の要素にアクセスができない!

  • リンクのためのメモリを余分に持つ必要がある。


メリット


  • データの個数がダイナミックに増やせる

  • データの追加や削除が頻繁に発生する場合は便利


SwiftでListNodeクラスを書くとこんな感じ

ListNodeというクラスはないので、自分で作ります。

public class ListNode {

public var val: Int
public var next: ListNode?
public init(_ val: Int) {
self.val = val
self.next = nil
}
}

ListNodeクラスの中に、別なListNodeクラスが入ってます。これがリンクです。

使用例はこちらに載せました〜

http://qiita.com/Saayaman/items/63edacc424a97540f3d4