• 将列表转化为链表(python实现)


    首先创建链表结点类

    1 class LinkNode:
    2     def __init__(self,item=None,next=None):
    3         self.item = item    #item:当前结点的数据
    4         self.next = next    #next:下一个结点

    接下来创建链表类

    class LinkedList:
        def __init__(self,seq=[]):    #seq为输入的列表
            self.size = 0        #链表初始长度为0
            self.head = None #链表头部结点初始时不存在
            self.last = None    #链表尾部结点初始时不存在
            for item in seq:
                  self.append(item)   #self.append()为自己定义的方法,该方法将列表的每个元素转为链表结点的格式 

    链表类创建后,首先设置一个能获取列表长度的方法:

    class LinkedList:
        def __init__(self,seq=[]):    #seq为输入的列表
            self.size = 0        #链表初始长度为0
            self.head = None #链表头部结点初始时不存在
            self.last = None   #链表尾部结点初始时不存在
            for item in seq:
                  self.append(item)   #self.append()为自己定义的方法,该方法将列表的每个元素转为链表结点的格式 
    
        def __len__(self):    
            return self.size

    __len__为python内置函数,在外部调用时,使用len()方法即可获得链表长度

     让我们设置构造函数(__init__)中出现的append()方法 ,效率Θ (1):

     class LinkedList: 
      
    def __init__(self,seq=[]): #seq为输入的列表 self.size = 0 #链表初始长度为0 self.head = None #链表头部结点初始时不存在
    self.last = None #链表尾部结点初始时不存在 for item in seq: self.append(item) #self.append()为自己定义的方法,该方法将列表的每个元素转为链表结点的格式 def __len__(self): return self.size

    def append(self,item): #item为列表seq的元素 newNode = LinkNode(item) #调用LinkNode结点类,生成一个新结点 if self.size == 0: #如果当前链表没有任何结点,那么新结点成为链表的头部 self.head = newNode
         else:
    #当前链表存在结点 self.last.next = newNode #self.last(尾部结点)的下一个结点为新结点 self.last = newNode #新结点变为尾部结点 self.size += 1 #由于新结点填入链表,链表长度+1

    自此链表创建完毕

  • 相关阅读:
    matlab中figure 创建图窗窗口
    matlab中imread 从图形文件读取图像
    matlab中imfinfo 有关图形文件的信息
    matlab中bitshift 将位移动指定位数
    matlab中reshape 重构数组
    matlab中find 查找非零元素的索引和值
    比特数
    matlab中fseek 移至文件中的指定位置
    poj 1039 Pipe(几何基础)
    poj 1556 The Doors(线段相交,最短路)
  • 原文地址:https://www.cnblogs.com/tumaowolf/p/13637735.html
Copyright © 2020-2023  润新知