zoukankan      html  css  js  c++  java
  • 有序列表 无序列表

    节点类

     1 # python
     2 # -*- coding: utf-8 -*-
     3 """
     4 __title__ = ''
     5 __author__ = 'wlc'
     6 __mtime__ = '2017/10/13'
     7 """
     8 class Node:
     9     def __init__(self, initData):
    10         self.data = initData
    11         self.next = None
    12     #getData
    13     def getData(self):
    14         return self.data
    15     #getNext
    16     def getNext(self):
    17         return self.next
    18     #setData
    19     def setData(self, data):
    20         self.data = data
    21     #setNext
    22     def setNext(self, nextNode):
    23         self.next = nextNode

    无序列表

     1 # python
     2 # -*- coding: utf-8 -*-
     3 """
     4 __title__ = ''
     5 __author__ = 'wlc'
     6 __mtime__ = '2017/10/13'
     7 """
     8 from dataStructure.dS import pythonLinkedListNode
     9 
    10 class UnorderedList:
    11     def __init__(self):
    12         self.head = None
    13     #isEmpty
    14     def isEmpty(self):
    15         return self.head == None
    16     #add
    17     def add(self, item):
    18         lnode = pythonLinkedListNode.Node(item)
    19         lnode.setNext(self.head)
    20         self.head = lnode
    21     #size
    22     def size(self):
    23         current = self.head
    24         count = 0
    25         while current != None:
    26             count = count + 1
    27             current = current.getNext()
    28         return count
    29     #serch
    30     def search(self, item):
    31         current = self.head
    32         flag = False
    33         while current != None and (not flag):
    34             if current.getData() == item:
    35                 flag = True
    36             else:
    37                 current.getNext()
    38         return flag
    39     #remove
    40     def remove(self, item):
    41         #链表删除元素由于链表不可以回退 因此需要设置两个指针一个当前位置一个上一个位置
    42         previous = None
    43         current = self.head
    44         found = False
    45         while not found:
    46             if current.getData() == item:
    47                 found = True
    48             else:
    49                 previous = current
    50                 current = current.getNext()
    51         #precious如果没有变化就说明头结点的数据就会说要删除的元素
    52         if previous == None:
    53             self.head = current.getNext()
    54         else:
    55             previous.setNext(current.getNext())

    有序列表

     1 # python
     2 # -*- coding: utf-8 -*-
     3 """
     4 __title__ = ''
     5 __author__ = 'wlc'
     6 __mtime__ = '2017/10/13'
     7 """
     8 from dataStructure.dS import pythonLinkedListNode
     9 
    10 
    11 class orderedList:
    12     def __init__(self):
    13         self.head = None
    14 
    15     # isEmpty
    16     def isEmpty(self):
    17         return self.head == None
    18 
    19     # size
    20     def size(self):
    21         current = self.head
    22         count = 0
    23         while current != None:
    24             count = count + 1
    25             current = current.getNext()
    26         return count
    27     #search
    28     def search(self, item):
    29         current = self.head
    30         found = False
    31         stop = False
    32         while current != None and not found and not stop:
    33             if current.getData() == item:
    34                 found = True
    35             else:
    36                 if current.getData() > item:
    37                     stop = True
    38                 else:
    39                     current = current.getNext()
    40         return found
    41     #add
    42     def add(self, item):
    43         current = self.head
    44         previous = None
    45         stop = False
    46         while current != None and not stop:
    47             if current.getData() > item:
    48                 stop = True
    49             else:
    50                 previous = current
    51                 current = current.getNext()
    52         temp = pythonLinkedListNode.Node(item)
    53         if previous == None:
    54             temp.setNext(self.head)
    55             self.head = temp
    56         else:
    57             temp.setNext(current)
    58             previous.setNext(temp)
  • 相关阅读:
    Ubuntu 16.04实现SSH无密码登录/免密登录/自动登录(ssh-keygen/ssh-copy-id)
    简单理解Linux的Loopback接口
    iptables为什么需要增加loopback回环的规则
    [ASP.NET Core 3框架揭秘] 依赖注入[10]:与第三方依赖注入框架的适配
    [ASP.NET Core 3框架揭秘] 依赖注入[9]:实现概述
    [ASP.NET Core 3框架揭秘] 依赖注入[8]:服务实例的生命周期
    [ASP.NET Core 3框架揭秘] 依赖注入[7]:服务消费
    [ASP.NET Core 3框架揭秘] 依赖注入[6]:服务注册
    [ASP.NET Core 3框架揭秘] 依赖注入[5]: 利用容器提供服务
    AOP框架Dora.Interception 3.0 [5]: 基于策略的拦截器注册方式
  • 原文地址:https://www.cnblogs.com/wlc297984368/p/7662668.html
Copyright © 2011-2022 走看看