DSKit
DSKit 是一个使用 Swift 编写的数据结构框架。
内容
特点
- 链表
- 队列
- 四叉树
要求
- iOS 8+ / macOS 10.10+
- Xcode 10+
- Swift 5+
安装
Carthage
github "Li-Bot/DSKit.git" ~> 0.1.0
Swift 包管理器
dependencies: [
.package(url: "https://github.com/Li-Bot/DSKit.git", .upToNextMajor(from: "1.0.0"))
]
Cocoapods
pod 'DSKitc', '~> 0.1.0'
使用方法
让我们看看它是多么简单!
链表
一个简单的链表。
// Create
let list = DSLinkedList<DSLinkedListNode<Int>>()
// Append
list.append(data: 1)
list.append(node: DSLinkedListNode(data: 2))
// Get
let firstNumber = list[0]
// Remove
list.remove(at: 1)
队列
一个简单的队列。
// Create
let queue = DSQueue<Int>()
// Enqueue
queue.enqueue(1)
// Dequeue
let firstNumber = queue.dequeue()
四叉树
四叉树是一种特殊的树状数据结构。四叉树用于二维空间的分解。每个节点有四个子节点,分别表示 - 之上左、之上右、之下右和之下左。
// Create
let treeRootRect = DSQuadRect(origin: .zero, end: CGPoint(x: 100.0, y: 100.0))
let quadTree = DSQuadTree<DSQuadTreeNode<Int>>(rect: treeRootRect)
// Insert
var result = quadTree.insert(node: DSQuadTreeNode(position: CGPoint(x: 10.0, y: 10.0), data: 1))
result = quadTree.insert(node: DSQuadTreeNode(position: CGPoint(x: 12.0, y: 12.0), data: 1))
result = quadTree.insert(node: DSQuadTreeNode(position: CGPoint(x: 70.0, y: 90.0), data: 1))
// Search
let foundNode = quadTree.search(at: CGPoint(x: 10.0, y: 10.0))
let foundNodes = quadTree.search(at: DSCircle(center: CGPoint(x: 50.0, y: 50.0), radius: 25.0))
未来
- 更多的数据结构。我刚刚开始。
许可
DSKit 采用 GNU GPLv3 许可证发布。请参阅 此处 的许可证。