python链表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python链表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1709字,纯文字阅读大概需要3分钟。
内容图文
![python链表](/upload/InfoBanner/zyjiaocheng/841/65c03ebff2724ab4af8e393a9acd0c27.jpg)
python链表
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大
class Node:
def __init__(self,val):
self.val=val
self.next=None
class ListNode:
count=0
foot=0
def __init__(self):
self.head=None
def addNode(self,data):
newNode=Node(data)
if self.head==None:
self.head=newNode
else:
temp=self.head
while(temp.next!=None):
temp=temp.next
temp.next=newNode
ListNode.count+=1
def printNode(self):
temp=self.head
while(temp!=None):
print(temp.val)
temp=temp.next
def sizeNode(self):
return ListNode.count
def isEmpty(self):
if ListNode.count==0:
return True
else:
return False
def contains(self,val):
temp=self.head
while(temp!=None):
if(temp.val==val):
return True
else:
temp=temp.next
return False
def get(self,index):
temp=self.head
while(temp!=None):
if ListNode.foot==index:
ListNode.foot=0
return temp.val
else:
temp=temp.next
ListNode.foot+=1
return "out of range"
def set(self,index,val):
temp = self.head
while (temp != None):
if ListNode.foot == index:
ListNode.foot = 0
temp.val=val
break
else:
temp = temp.next
ListNode.foot += 1
return "out of range"
def removeNode(self,node,val):
if node.next.val==val:
node.next=node.next.next
else:
self.removeNode(node.next,val)
def remove(self,val):
if self.contains(val):
if self.head.val==val:
self.head=self.head.next
else:
self.removeNode(self.head,val)
ListNode.count-=1
if __name__=="__main__":
one=ListNode()
one.addNode("A")
one.addNode("B")
one.addNode("C")
one.printNode()
print("-------------")
one.remove("C")
print(one.sizeNode())
one.printNode()
内容总结
以上是互联网集市为您收集整理的python链表全部内容,希望文章能够帮你解决python链表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。