消息关闭
    暂无新消息!

如何使用SWIFT生成一个链表

问题作者 : 风之2017-07-04发布
我是新手,问一个关于链表的问题,请求大家支持,谢谢先!

构成数据结构中链表的节点包含两个部分,一个是数据自身,可以是各种整形、字符串等等,也可以符合结构,这个好处理,在SWIFT中最后汇总到泛型就可以了。另外一个部分是节点指针,指向下一个节点的地址。在C语言中的处理方法大家都很熟悉了,不再多说,在JAVA中也可以使用如下方式来定义这个节点:
class Node {
   int data;
   Node next;
   public Node(int data) {
     this.data = data;
    this.next =null;
  }
}
JAVA尽管没有c语言的指针,但是在类的定义中, Node: next;这一条语句非常重要,它实际上起到了指针的作用。而后边的this.next=null;把这个指针指向空值,完成了Node节点的定义。
在SWIFT中,如果我们采用类似的方式来定义这个节点,例如:
struct Node {
   var data: int
   var next: Node
}
就会得到Recursive value type "Node" is not allowed的错误提示,表示这样的定义是不允许的。
那么,在SWIFT中应该采用什么样的方式来定义这个链表中的节点呢?
谢谢先!

2个回答

︿ 1

struct Nodes {
    var value : Int
    var next : Any?
}

class Node {
     var value:Int=0
     var next:Node?
}