-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMyQueue.py
112 lines (95 loc) · 2.17 KB
/
MyQueue.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# -*- coding: utf-8 -*-
# from mystack import MyStack
__author__ = 'gaochenchao'
class QueNode(object):
def __init__(self, value, next):
self.value = value
self.next = next
def __repr__(self):
return self.value
class MyQueue(object):
def __init__(self):
self.head = QueNode(None, None)
self.last = self.head
self.size = 0
def isEmpty(self):
if self.size == 0:
return True
return False
def Len(self):
return self.size
def offer(self, arg):
node = QueNode(arg, None)
self.last.next = node
self.last = node
self.size += 1
def pull(self):
if self.isEmpty():
return None
node = self.head.next
after = node.next
self.head.next = after
self.size -= 1
if self.size == 0:
self.last = self.head
return node.value
def peek(self):
return self.head.next.value
# mq = MyQueue()
# mq.offer(1)
# mq.offer(2)
# mq.offer(3)
# mq.pull()
# mq.pull()
# print mq.peek()
#
# class MyQueue2(object):
#
# def __init__(self):
# self.stack1 = MyStack()
# self.stack2 = MyStack()
# self.size = 0
#
# def isEmpty(self):
# if self.size == 0:
# return True
# return False
#
# def Len(self):
# return self.size
#
# def offer(self, arg):
# self.stack1.push(arg)
# self.size += 1
#
# def pull(self):
# if self.size == 0:
# return
#
# if self.stack2.isEmpty():
# while not self.stack1.isEmpty():
# self.stack2.push(self.stack1.pop())
# self.stack2.pop()
# self.size -= 1
#
# def peek(self):
# if self.size == 0:
# return
#
# if self.stack2.isEmpty():
# while not self.stack1.isEmpty():
# self.stack2.push(self.stack1.pop())
# # print self.stack2.Len()
# print self.stack2.peek()
#
# que = MyQueue2()
# for i in range(88, 99):
# que.offer(i)
#
# # que.peek()
# # que.pull()
# # que.peek()
#
# for i in range(0, que.Len()):
# que.peek()
# que.pull()