class List:
#创建List类保存顺序表
def __init__(self, size):
#初始化方法
self.data = [x + 1 for x in range(size)] #初始化数据data,使其为序号为1-9的元素
self.last = size #初始化指向最后一个元素的索引last
self.maxsize=size #初始化顺序表容量。但由于python中所有列表长度均为可变长的,因此没有实际意义
def delete(self, id):
#创建delete方法用于删除数据
print(self.data[id - 1]) #输出要删除的数据
for i in range(id, self.last):
self.data[i - 1] = self.data[i]
del self.data[last - 1] #删除最后一个数据使得容量-1
self.last = self.last - 1 #改变索引
return self.data #返回新的顺序表
Josephus_Ring = List(9) #引用顺序表类对象
skip = 5
num = 1
while Josephus_Ring.last > 1:
#顺序表中元素大于1时继续循环
num = (num + skip - 1) % Josephus_Ring.last #删除的序号
print(Josephus_Ring.data)
last = Josephus_Ring.last
Josephus_Ring.data = Josephus_Ring.delete(num % last) #删除 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)