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 实现单链表

相关内容

    暂无相关文章

评论关闭