用 Swift 实现 LinkedList 的程序

swiftserver side programmingprogramming更新于 2025/9/19 19:22:17

链表是一种用于存储和管理数据的数据结构。它是一个节点序列,每个节点包含两部分:数据和对给定序列中下一个节点的引用。使用链表,我们可以轻松地在列表的任意位置插入或删除元素。

链表有两种类型 -

  • 单链表- 它只能向一个方向移动,因为每个节点都引用下一个节点。但最后一个节点的 next 指针指向 NULL。

  • 双链表- 它可以双向移动,因为每个节点都引用了下一个节点和上一个节点。

虽然 Swift 不支持任何内置的链表数据结构,但我们仍然可以使用类或结构体来实现 linkedList。您可以根据您的要求使用任何方法来实现链表。在本文中,我们将讨论如何在 Swift 中创建单链表。

LinkedList 支持以下操作:−

  • Delete − 用于从链表中删除节点。

  • Insert − 用于在链表中插入新元素。

  • Display − 用于打印链表。

  • Search − 用于在给定的链表。

示例

在下面的 Swift 程序中,我们将使用类实现一个单链表。在这里,我们将使用一个包含值和下一个节点引用的类创建一个节点。然后,我们将创建一个 LinkedList 类来管理链表,并提供插入新元素和显示链表的方法。接下来,我们将创建一个 LinkedList 类的实例,用于向 LinkedList 添加新元素。最后,通过调用 LinkedList 类的 display 方法来显示输出。

import Foundation
import Glibc

class node<X> {
   var element: X
   var next: node<X>?
    
   init(element: X) {
       self.element = element
       self.next = nil
   }
}

// 使用类实现链表
class linkedList<X> 
{
  var head: node<X>?
    
  var First: node<X>? {
      return head
   }
    
   var Last: node<X>? {
      if var n = head {
          while let nextVal = n.next {
              n = nextVal
          }
          return n
      }
      return nil
  }
    
   // 添加新元素
   func appendElement(item: X) 
   {
      let nNode = node(element: item)
      if let endNode = Last {
          endNode.next = nNode
      } else {
          head = nNode
      }
   }
    
   // 显示链接列表
   func showList() 
   {
      var cNode = head
      while cNode != nil {
          print("\(cNode!.element) ->", terminator: "")
          cNode = cNode?.next
      }
      print("nil")
   }
}

let myLinkedList = linkedList<Int>()
myLinkedList.appendElement(item: 34)
myLinkedList.appendElement(item: 12)
myLinkedList.appendElement(item: 84)
myLinkedList.appendElement(item: 92)

print("LinkedList 元素包括:")
myLinkedList.showList()

输出

LinkedList 元素包括:
34 ->12 ->84 ->92 ->nil

结论

以上就是我们实现链表的方法。链表在动态调整大小、插入、删除、实现图、堆栈和队列等方面非常有用。链表数据结构的灵活性和效率使其在数据管理和特定算法的实现上更加灵活。它也可以用来实现哈希表。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部