codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
# C/C++ 로 배우는 자료구조론 연습문제 7.33 class CircularQueue def initialize(size) @memory = [] @front = 0 @rear = 0 @queue_size = size end def is_empty return @front == @rear end def is_full return ((@rear + 1) % @queue_size) == @front end def enqueue(data) return nil if is_full @rear = (@rear + 1) % @queue_size @memory[@rear] = data end def dequeue return nil if is_empty @front = (@front + 1) % @queue_size return @memory[@front] end def size if @rear > @front return @rear - @front elsif @rear == @front return 0 else return @rear + @queue_size - @front end end end def print_josephus_problem_survive_index(person_count, execute_interval) queue = CircularQueue.new(person_count + 1) (1..person_count).each { |i| queue.enqueue i } while queue.size >= execute_interval (execute_interval - 1).times do person = queue.dequeue queue.enqueue person end puts "Executed : " + queue.dequeue.to_s end until queue.is_empty puts "Survived : " + queue.dequeue.to_s end end print_josephus_problem_survive_index(41, 3)
Private
[
?
]
Run code