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)
  • 相关阅读:
    .net 下webservice 的WebMethod的属性
    做一个项目,平时都用到哪些工具提高效率(James Li)
    Android之解析Android Map地图返回的Json数据
    歌词文件LRC的解析,可用于音乐播放器实现歌词同步操作
    Android之创建程序快捷方式
    Android之Bitmap使用心得(持续更新)
    Socket编程之旅(服务器与客户端沟通)
    Android之应用自定义相机拍照并且对拍照文字(英文)进行识别
    android之App widget实际应用Demo
    Android之创建实时文件夹
  • 原文地址:https://www.cnblogs.com/lely/p/10137614.html
Copyright © 2011-2022 走看看