【Datastructure In Python】Python模拟链表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Datastructure In Python】Python模拟链表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2177字,纯文字阅读大概需要4分钟。
内容图文
![【Datastructure In Python】Python模拟链表](/upload/InfoBanner/zyjiaocheng/1111/fee7851f11da4a53995c9473e552d2b6.jpg)
最近一直在学习Python和Perl这两门语言,两者共同点很多,也有不多。希望通过这样的模拟练习可以让自己更熟悉语言,虽然很多时候觉得这样用Python或者Perl并没有体现这两者的真正价值。
# ! /usr/bin/env python # DataStructure Linkedlist class Node: """ Member Variable: 1. next 2. data """ def __init__ (self, data): self.data = data self.next = None def__str__(self): return"NodeInfo: data=%d, next_id=%d" % (self.data, id(self.next)) class LinkedList: """ Member Variable: 1.head 2.cur """def__init__(self): self.head = Node(0) self.cur = self.head; def__init__(self, data=None): if data isnot None: self.head = Node(1) newNode = Node(data) self.head.next = newNode self.cur = self.head.next else : self.head = Node(0) self.cur = self.head; def__str__(self): tmp = "The List has %d nodes.\n" % self.head.data Nodetmp = self.head.next while Nodetmp isnot None: tmp += "->%d" % Nodetmp.data Nodetmp = Nodetmp.next return tmp def Insert(self, data, pos=-1): if pos > self.head.data : print"Out of range"return newNode = Node(data) if pos >= 0: Nodetmp = self.head.ext while pos : Nodetmp = Nodetmp.Next pos -= 1 newNode.next = Nodetmp.next Nodetmp.next = newNode else: self.cur.next = newNode self.cur = self.cur.next self.head.data += 1 def Remove(self, data, pos=0): if pos >= self.head.data : print"Out of range"return Nodetmp = self.head beg = pos while pos >= 1: Nodetmp = Nodetmp.next pos -= 1 while Nodetmp.next isnot None: if Nodetmp.next.data == data : break Nodetmp = Nodetmp.next Nodetmp.next = Nodetmp.next.next self.head.data -= 1 if beg == self.head.data : self.cur = Nodetmp.next def Find(self, data, pos=0): if pos > self.head.data: print"Out of range"return Nodetmp = self.head while pos : Nodetmp = Nodetmp.next pos -= 1 while Nodetmp.next isnot None: if Nodetmp.data == data : break Nodetmp = Nodetmp.next return Nodetmp def GetLinkSize(self): return self.head.data if__name__ == "__main__" : Lst = LinkedList() for i in range(10) : Lst.Insert(i) for i in range(1,10,2) : Lst.Insert(i) print Lst tmp = Lst.Find(3, 10) print tmp.next Lst.Remove(1, 10) print Lst Lst.Insert(4) print Lst
运行截图如下。
原文:http://www.cnblogs.com/bombe1013/p/3586410.html
内容总结
以上是互联网集市为您收集整理的【Datastructure In Python】Python模拟链表全部内容,希望文章能够帮你解决【Datastructure In Python】Python模拟链表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。