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
}
}
}
- Strictly speaking,
data
andprev
are properties. prev
is – as I understand it – a pointer to the node that was added after this one, so I would call itnext
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
andprev
are properties. prev
is – as I understand it – a pointer to the node that was added after this one, so I would call itnext
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
andprev
are properties. prev
is – as I understand it – a pointer to the node that was added after this one, so I would call itnext
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
}
}
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
}
}
}
default