#!/usr/bin/python
# -*- coding: utf-8 -*-
class StackNode:
def __init__(self,data):
self.next=None
self.data=data
class CircleLinkQueen:
#初始化
def __init__(self):
headNode=StackNode(None)
self.rear=headNode
self.front=headNode
def IsEmptyQueen(self):
return self.rear==self.front
def EnterQueen(self,data):
cNode=StackNode(data)
cNode.next=self.front
self.rear.next=cNode
self.rear=cNode
def ExitQueen(self):
if self.IsEmptyQueen():
return
else:
tNode=self.front.next
self.front.next=tNode.next
if tNode==self.rear:
self.rear=self.front
return tNode.data
def GetFront(self):
if self.IsEmptyQueen():
return
else:
return self.front.next.data
class UnitTest:
###################################
## n个人围圈坐,按数字k抽奖
###################################
def CircleRewardGame(self,n,k):
cQueen=CircleLinkQueen();
i=0
while i<n:
cQueen.EnterQueen(i+1)
i=i+1
if cQueen.IsEmptyQueen():
print("抽奖参与人数为0,本期没有抽奖活动")
return
while cQueen.front.next!=cQueen.rear:
count=1
while count<k:
tNode=cQueen.ExitQueen()
cQueen.EnterQueen(tNode)
count=count+1
print("当前出局: ",cQueen.ExitQueen())
print("幸运儿为: ",cQueen.ExitQueen())
test=UnitTest()
test.CircleRewardGame(41,3)