DSKitc 0.2.0

DSKitc 0.2.0

维护者 Libor Polehna.



DSKitc 0.2.0

  • Libor Polehna

Carthage compatible Pods compatible SPM compatible Swift Version Platform PRs Welcome

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 许可证发布。请参阅 此处 的许可证。