zoukankan      html  css  js  c++  java
  • [Swift实际操作]八、实用进阶-(9)Swift中的链表LinkedList详解

    链表是一种物理存储单元上的非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。
    相比于线性表的顺序结构,链表比较方便插入和删除操作。本文将讲解如何模拟一个链表。

     1 //链表的节点类
     2 class ListNode
     3 {
     4     //链表的节点由两部分组成:数据域、指针域
     5     //添加一个整形类型的数组属性,作为链表的数据域   
     6     var content:Int
     7     //添加一个节点类型的属性,作为存储下一个节点地址的指针
     8     var nextNode: ListNode?
     9     
    10     //节点类初始化方法
    11     init(_ content:Int)
    12     {
    13     //对节点的两个部分进行初始化
    14     self.content = content
    15     self.nextNode = nil
    16     }
    17 }
    18 
    19 //链表类
    20 class LinkedList
    21 {
    22     //头节点
    23     var head:ListNode?
    24     //尾节点
    25     var end:ListNode?
    26     
    27     //链表头插节点
    28     func appendToHead(content:Int)
    29     {
    30         //判断头结点是否为空
    31         if head == nil
    32         {
    33             //如果链表为空则初始化,
    34             //使其即是头结点,也是尾节点
    35             head = ListNode(content)
    36             end = head
    37         }
    38         else
    39         {
    40             //如果链表不为空,则初始化一个临时节点,
    41             let temporaryNode = ListNode(content)
    42             //将临时节点的指针指向头结点,
    43             temporaryNode.nextNode = head
    44             //然后临时节点变为新的头结点
    45             head = temporaryNode
    46         }
    47     }
    48     
    49     //链表尾插节点
    50     //链表头插节点
    51     func appendToEnd(content:Int)
    52     {
    53         //判断尾结点是否为空
    54         if head == nil
    55         {
    56             //如果链表为空则初始化,
    57             //使其即是头结点,也是尾节点
    58             end = ListNode(content)
    59             head = end
    60         }
    61         else
    62         {
    63             //如果链表不为空,则初始化一个新节点,
    64             //将指向尾节点的新指针指向新节点
    65             end?.nextNode = ListNode(content)
    66             //然后新节点作为链表尾结点
    67             end = nd?.nextNode 
    68         }
    69     }  
    70 }
  • 相关阅读:
    3-4: 一元多项式的乘法与加法运算
    设计模式一装饰者模式
    设计模式一组合模式
    设计模式一命令模式
    设计模式一建造者模式
    设计模式一桥接模式
    设计模式一适配器模式
    设计模式一抽象工厂模式
    排序算法一二分排序
    排序算法一希尔排序
  • 原文地址:https://www.cnblogs.com/strengthen/p/9854400.html
Copyright © 2011-2022 走看看