python 实现单链表,,#! /usr/bi
python 实现单链表,,#! /usr/bi
#! /usr/bin/env python ###### Linked List python implementation###### @reference Data Structures and Algorithm Analysis in C:Second Edition : Mark Allen Weiss### @date Tue Sep 29 20:51:55 CST 2015 #node structureclass Node(object): def __init__(self, value, p=None): self.element = value self.pNext = pclass LinkedList(object): def __init__(self): self.head = None def makeEmpty(self): self.head = None def isEmpty(self): return self.head == None def find(self, value): if self.isEmpty(): print ‘the linked list is empty !‘ return p = self.head while p != None: if p.element == value: #the index of the target in linkedlist return p p = p.pNext return -1 def insert(self, value): item = Node(value) if self.isEmpty(): self.head = item else: p = self.head while p.pNext != None: p = p.pNext p.pNext = item def deleteList(self): if self.isEmpty(): print ‘the linked list is empty !‘ else: p = self.head.pNext self.head = None while p != None: tmp = p.pNext p = None p=tmp def delete(self, target): if self.isEmpty(): print ‘the linked list is empty !‘ else: p = self.findPrevious(target) if not self.isLast(p): tmpNode = p.pNext p.pNext = tmpNode.pNext tmpNode = None else: p.pNext = None def isLast(self,p): return p.pNext == None def findPrevious(self, target): if self.isEmpty(): print ‘the linked list is empty !‘ else: p = self.head while p != None and p.pNext.element != target: p = p.pNext return p def debug(self): if self.isEmpty(): print ‘the linked list is empty !‘ else: p = self.head while p != None: print p.element p = p.pNext if p == None: print ‘-------------‘ def initLinkedList(self,lists): for item in lists: self.insert(item) obj=LinkedList()lists=[1,2,3,4,5,6,10,17]obj.initLinkedList(lists)#rs=obj.isEmpty()#print rs#rs=obj.find(17)#print rs#rs=obj.isLast(rs)#print rs#obj.debug()#rs=obj.find(17)#rs=obj.find(14)#rs=obj.findPrevious(10)#print rs#print rs.element#obj.delete(10)obj.deleteList()obj.debug()
python 实现单链表
相关内容
- 暂无相关文章
评论关闭