Должен ли я создать быстрый LinkedList в виде структуры или класса? - PullRequest
0 голосов
/ 05 ноября 2018

Каждый раз, когда я добавляю новый узел в список быстрых ссылок, создается новый список ссылок, если список ссылок является структурой. Это плохо для производительности? Было бы лучше, если бы Linkedlist был классом, а не структурой?

Example

    public class Node<Value> {
      public var value: Value
      public var next: Node?

      public init(value: Value, next: Node? = nil) {
        self.value = value
        self.next = next
      }
    }

    public struct LinkedList<Value> {
      public var head: Node<Value>?
      public var tail: Node<Value>?

      public init() {}
        public var isEmpty: Bool {
          return head == nil
        }
        public mutating func push(_ value: Value) {
          head = Node(value: value, next: head)
          if tail == nil {
            tail = head
          }
        }
        public mutating func append(_ value: Value) {
          guard !isEmpty else {
            push(value)
            return
          }
        }
     }
     var list = LinkedList<Int>()
     list.push(3)
     print(Unmanaged<AnyObject>.passUnretained(list as AnyObject).toOpaque())
     list.push(2)
     print(Unmanaged<AnyObject>.passUnretained(list as AnyObject).toOpaque())

Output

    0x000060c0002415f0
    0x000060c0002416e0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...