如何使用SWIFT生成一个链表

[复制链接]
164 3
我是新手,问一个关于链表的问题,请求大家支持,谢谢先!

构成数据结构中链表的节点包含两个部分,一个是数据自身,可以是各种整形、字符串等等,也可以符合结构,这个好处理,在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中应该采用什么样的方式来定义这个链表中的节点呢?
谢谢先!

举报 使用道具

回复

3 个评论

yccc  注册会员  发表于 2019-2-11 07:18:01  | 显示全部楼层
我是新手,问一个关于链表的问题,请求大家支持,谢谢先!

构成数据结构中链表的节点包含两个部分,一个是数据自身,可以是各种整形、字符串等等,也可以符合结构,这个好处理,在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中应该采用什么样的方式来定义这个链表中的节点呢?
谢谢先!

举报 使用道具

回复
Printableideam  新手上路  发表于 2019-2-11 07:59:58  | 显示全部楼层
struct Nodes {
    var value : Int
    var next : Any?
}

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

举报 使用道具

回复
BatikPag  新手上路  发表于 2019-2-11 09:47:12  | 显示全部楼层
楼上正解!!!

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表