zoukankan      html  css  js  c++  java
  • Python FIFO算法模拟

    #!/usr/bin/python
     
    array = (7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1)
    memory = []
    pointer = 0
     
    # if the memory is empty
     
     
    def is_empty(_list_):
         if len(_list_) == 0:
             re1 = 1
         else:
             re1 = 0
         return re1
     
     
    # if the memory is empty
     
    def is_fulled(_list_):
         if len(_list_) == 3:
             re1 = 1
         else:
             re1 = 0
         return re1
     
     
    def search(target, _list_):
        exist = 0
        for each_item in _list_:
            if each_item == target:
                exist = 1
                break
        return exist
     
    # put in memory
     
     
    def push(target, _list_, temp):
        if is_empty(_list_) == 1 or is_fulled(_list_) == 0:
            _list_.append(target)
        else:
            if search(target, _list_) == 1:
                print('no exchange')
            else:
                if temp > 2:
                    temp = 0
                    _list_.pop(temp)
                    _list_.insert(temp, target)
                    temp = temp + 1
                else:
                    _list_.pop(temp)
                    _list_.insert(temp, target)
                    temp = temp + 1
        return temp
     
     
    for each_item in array:
        pointer = push(each_item, memory, pointer)
        print(memory)

    结果:结果:
    [7]
    [7, 0]
    [7, 0, 1]
    [2, 0, 1]
    no exchange
    [2, 0, 1]
    [2, 3, 1]
    [2, 3, 0]
    [4, 3, 0]
    [4, 2, 0]
    [4, 2, 3]
    [0, 2, 3]
    no exchange
    [0, 2, 3]
    no exchange
    [0, 2, 3]
    [0, 1, 3]
    [0, 1, 2]
    no exchange
    [0, 1, 2]
    no exchange
    [0, 1, 2]
    [7, 1, 2]
    [7, 0, 2]
    [7, 0, 1]

  • 相关阅读:
    Ubuntu 11.10 安装JDK
    virtualbox下安装ubuntu
    GridView控件的DataKeyNames
    Asp.net中防止用户多次登录的方法
    在asp.net中使用线程
    SQL2008更改表结构问题
    Ubuntu安装run文件
    ContextSwitchDeadlock
    CheckedListBox用法
    C#图片加水印图片和文字
  • 原文地址:https://www.cnblogs.com/AlinaL/p/12852187.html
Copyright © 2011-2022 走看看