import Foundation
class Node<Value> {
var value: Value
var next: Node?
init(value: Value, next: Node? = nil) {
self.value = value
self.next = next
}
}
extension Node: CustomStringConvertible {
var description: String {
guard let next = next else {
return "\(value)"
}
return "\(value) -> " + String(describing: next) + " "
}
}
struct LinkedList<Value: Comparable> {
var head: Node<Value>?
var tail: Node<Value>?
var isEmpty: Bool {
return head == nil
}
mutating func push(_ value: Value) {
head = Node(value: value, next: head)
if tail == nil {
tail = head
}
}
mutating func append(_ value: Value) {
copyNodes()
guard !isEmpty else {
push(value)
return
}
Swift单向链表实现
最新推荐文章于 2022-01-13 19:11:52 发布
本文详细介绍了如何在Swift中实现单向链表数据结构,从节点定义到链表的基本操作如插入、删除和遍历,通过实例代码深入理解链表的工作原理。
摘要由CSDN通过智能技术生成