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)
  • 相关阅读:
    windowssdk编程从简单的对话框开始
    面向扣扣编程知识一
    循序渐进DLL编程(二)
    西方经济学导论
    循序渐进DLL编程(五)
    HLSL Effect的vertex shader和pixel shader的参数传递
    Directx11 HelloWorld之与Directx9的比较
    Directx11 HelloWorld之简单三角形绘制
    正式开始记录自己学习历程
    坐标系的转换
  • 原文地址:https://www.cnblogs.com/lely/p/10137614.html
Copyright © 2011-2022 走看看