zoukankan      html  css  js  c++  java
  • python-数据结构代码 链表(无序链表、有序链表)

    class Node:
        def __init__(self,initdata):
            self.data = initdata
            self.next = None
    
        def getData(self):
            return self.data
    
        def getNext(self):
            return self.next
    
        def setData(self,newdata):
            self.data = newdata
    
        def setNext(self,newnext):
            self.next = newnext
    
    class UnorderedList:
        def __init__(self):
            self.head = None
    
        def isEmpty(self):
            return self.head == None
    
        def add(self,item):
            temp = Node(item)
            temp.setNext(self.head)
            self.head = temp
        
        def size(self):
            current = self.head
            count=0
            while current != None:
                count=count+1
                current=current.getNext()
            return count
        
        def search(self,item):
            current=self.head
            found=False
            while current!-None and not foune:
                if current.getData() == item:
                    found=True
                else:
                    current=current.getNext()
            return found
    
        def remove(self,item):
            current=self.head
            previous=None
            found=False
            while not found:
                if current.getData()==item:
                    found=True
                else:
                    previous=current
                    current=current.getNext()
            if previous==None:
                self.head=current.getNext()
            else:
                previous.setNext(current.getNext())
    
    class OrderedList:
        def __init__(self):
            self.head = None
    
        def isEmpty(self):
            return self.head == None
        
        def size(self):
            current = self.head
            count=0
            while current != None:
                count=count+1
                current=current.getNext()
            return count
    
        def remove(self,item):
            current=self.head
            previous=None
            found=False
            while not found:
                if current.getData()==item:
                    found=True
                else:
                    previous=current
                    current=current.getNext()
            if previous==None:
                self.head=current.getNext()
            else:
                previous.setNext(current.getNext())
    
        def search(self,item):
            current=self.head
            found=False
            stop=False
            while current!=None and not found and not stop:
                if current.getData()==item:
                    found=True
                else:
                    if current.getData()>item:
                        stop=True
                    else:
                        current=current.getNext()
            return found
    
        def add(self,item):
            current=self.head
            previous=None
            stop=False
            while current!=None and not stop:
                if current.getData()>item:
                    stop=True
                else:
                    previous=current
                    current=current.getNext()
            temp=Node(item)
            if previous==None:
                temp.setNext(self.head)
                self.head=temp
            else:
                temp.setNext(current)
                previous.setNext(temp)
  • 相关阅读:
    Javascript高级程序设计笔记(很重要尤其是对象的设计模式与继承)
    javascript面向对象技术基础总结
    cURL范例(包括错误输出和详情输出)
    javascript知识点总结
    php memcache知识点总结
    php mcrypt加密实例
    spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)
    table-layout 属性
    backface-visibility 属性 :隐藏被旋转的 div 元素的背面
    HTML 5 全局 contenteditable 属性
  • 原文地址:https://www.cnblogs.com/lely/p/10137614.html
Copyright © 2011-2022 走看看