zoukankan      html  css  js  c++  java
  • 2、链表(python实现)

    # -*- coding:utf-8 -*-
    #@Time : 2020/5/2 0:01
    #@Author: Aluosen
    #@File : Linklist.py
    #节点Node
    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 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 found:
    if current.getData() == item:
    found = True
    else:
    current = current.getNext()
    return found
    def remove(self):
    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.getNext(current.getNext())

    #有序表
    class OrderList:
    def __init__(self):
    self.head = None
    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:
    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)



  • 相关阅读:
    rm
    Linux下解包/打包,压缩/解压命令
    虚拟机安装---vm12+ubuntukylin16.04
    mysql-5.6.41-winx64安装
    tensorflow学习笔记一------下载安装,配置环境(基于ubuntu16.04 pycharm)
    大一上学期C语言学习心得总结
    常见HTTP状态码
    Java语言基础及java核心
    linux下安装JMeter(小白教程)
    Linux下安装JDK(小白教程)
  • 原文地址:https://www.cnblogs.com/Aluosen/p/12817365.html
Copyright © 2011-2022 走看看