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.25 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 end class Stack def initialize(size) @top = -1 @memory = [] @stack_size = size end def is_full return @top >= (@stack_size - 1) end def is_empty return @top == -1 end def push(data) return nil if is_full @top += 1 @memory[@top] = data end def pop return nil if is_empty data = @memory[@top] @top -= 1 return data end end def queue_to_stack(queue) temp_stack = Stack.new 5 until queue.is_empty temp_stack.push queue.dequeue end stack = Stack.new 5 until temp_stack.is_empty stack.push temp_stack.pop end return stack end queue = CircularQueue.new 6 queue.enqueue "A" queue.enqueue "B" queue.enqueue "C" queue.enqueue "D" queue.enqueue "E" stack = queue_to_stack queue until stack.is_empty puts stack.pop end puts queue.is_empty
Private
[
?
]
Run code