Python FIFO算法模拟

来源:互联网 发布:阿里云服务器免流教程 编辑:程序博客网 时间:2024/06/18 14:03

#!/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]