Skip to main content
Code Review

Return to Answer

edited body
Source Link
Martin R
  • 24.2k
  • 2
  • 38
  • 96
private class Node<T> {
 varlet data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {
 
 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let node = Node(data: e)
 if let lastNode = tail {
 lastNode.next = node
 } else {
 head = node
 }
 tail = node
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
private class Node<T> {
 var data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {
 
 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let node = Node(data: e)
 if let lastNode = tail {
 lastNode.next = node
 } else {
 head = node
 }
 tail = node
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
private class Node<T> {
 let data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {
 
 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let node = Node(data: e)
 if let lastNode = tail {
 lastNode.next = node
 } else {
 head = node
 }
 tail = node
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
added 151 characters in body
Source Link
Martin R
  • 24.2k
  • 2
  • 38
  • 96
  • Strictly speaking, data and prev are properties.
  • prev is – as I understand it – a pointer to the node that was added after this one, so I would call it next instead.
  • The class should be private because it is not indented to be used outside of Queue.
  • data should be a constant because it is not mutated after the creation of a node (attributions go to @Feldur who noticed that in a comment).
  • Minor note: There should be a space before curly braces.
private class Node {
 // properties
 varlet data: String
 var next: Node?
 
 init(data: String) {
 self.data = data
 }
}
  • Strictly speaking, data and prev are properties.
  • prev is – as I understand it – a pointer to the node that was added after this one, so I would call it next instead.
  • The class should be private because it is not indented to be used outside of Queue.
  • Minor note: There should be a space before curly braces.
private class Node {
 // properties
 var data: String
 var next: Node?
 
 init(data: String) {
 self.data = data
 }
}
  • Strictly speaking, data and prev are properties.
  • prev is – as I understand it – a pointer to the node that was added after this one, so I would call it next instead.
  • The class should be private because it is not indented to be used outside of Queue.
  • data should be a constant because it is not mutated after the creation of a node (attributions go to @Feldur who noticed that in a comment).
  • Minor note: There should be a space before curly braces.
private class Node {
 // properties
 let data: String
 var next: Node?
 
 init(data: String) {
 self.data = data
 }
}
deleted 4 characters in body
Source Link
Martin R
  • 24.2k
  • 2
  • 38
  • 96
private class Node<T> {
 var data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {

 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let newNodenode = Node(data: e)
 if let lastNode = tail {
 lastNode.next = newNodenode
 } else {
 head = newNodenode
 }
 tail = newNodenode
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
private class Node<T> {
 var data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {
 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let newNode = Node(data: e)
 if let lastNode = tail {
 lastNode.next = newNode
 } else {
 head = newNode
 }
 tail = newNode
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
private class Node<T> {
 var data: T
 var next: Node?
 
 init(data: T) {
 self.data = data
 }
}
class Queue<T> {

 private var head: Node<T>?
 private var tail: Node<T>?
 
 func enqueue(e: T) {
 let node = Node(data: e)
 if let lastNode = tail {
 lastNode.next = node
 } else {
 head = node
 }
 tail = node
 }
 
 func dequeue() -> T? {
 if let firstNode = head {
 head = firstNode.next
 if head == nil {
 tail = nil
 }
 return firstNode.data
 } else {
 return nil
 }
 }
}
Source Link
Martin R
  • 24.2k
  • 2
  • 38
  • 96
Loading
default

AltStyle によって変換されたページ (->オリジナル) /