File tree Expand file tree Collapse file tree 3 files changed +136
-0
lines changed Expand file tree Collapse file tree 3 files changed +136
-0
lines changed Original file line number Diff line number Diff line change 1+ class Stack (object ):
2+ def __init__ (self ):
3+ self .items = []
4+
5+ def isEmpty (self ):
6+ return not bool (self .items )
7+
8+ def push (self , value ):
9+ self .items .append (value )
10+
11+ def pop (self ):
12+ value = self .items .pop ()
13+ if value :
14+ return value
15+ else :
16+ print ("Stack is empty." )
17+
18+ def size (self ):
19+ return len (self .items )
20+
21+ def peek (self ):
22+ if self .items :
23+ return self .items [- 1 ]
24+ else :
25+ print ("Stack is empty." )
26+
27+ def __repr__ (self ):
28+ return f"{ self .items } "
29+
30+
31+ if __name__ == '__main__' :
32+ stack = Stack ()
33+ print (f"스택이 비었나요? { stack .isEmpty ()} " )
34+ print ("스택에 0-9까지의 항목을 추가합니다." )
35+ for i in range (10 ):
36+ stack .push (i )
37+ print (f"스택 크기: { stack .size ()} " )
38+ print (f"peek: { stack .peek ()} " )
39+ print (f"pop: { stack .pop ()} " )
40+ print (f"peek: { stack .peek ()} " )
41+ print (f"스택이 비었나요? { stack .isEmpty ()} " )
42+ print (stack )
Original file line number Diff line number Diff line change 1+ class Node (object ):
2+ def __init__ (self , value = None , pointer = None ):
3+ self .value = value
4+ self .pointer = pointer
5+
6+
7+ class Stack (object ):
8+ def __init__ (self ):
9+ self .head = None
10+
11+ def isEmpty (self ):
12+ return not bool (self .head )
13+
14+ def push (self , item ):
15+ self .head = Node (item , self .head )
16+
17+ def pop (self ):
18+ if self .head :
19+ node = self .head
20+ self .head = node .pointer
21+ return node .value
22+ else :
23+ print ('Stack is empty.' )
24+
25+ def peek (self ):
26+ if self .head :
27+ return self .head .value
28+ else :
29+ print ('Stack is empty.' )
30+
31+ def size (self ):
32+ node = self .head
33+ count = 0
34+ while node :
35+ count += 1
36+ node = node .pointer
37+ return count
38+
39+ def _printList (self ):
40+ node = self .head
41+ while node :
42+ print (node .value , end = ' ' )
43+ node = node .pointer
44+ print ()
45+
46+
47+ if __name__ == '__main__' :
48+ stack = Stack ()
49+ print (f"스택이 비었나요? { stack .isEmpty ()} " )
50+ print ("스택에 0-9까지의 항목을 추가합니다." )
51+ for i in range (10 ):
52+ stack .push (i )
53+ stack ._printList ()
54+ print (f"스택 크기: { stack .size ()} " )
55+ print (f"peek: { stack .peek ()} " )
56+ print (f"pop: { stack .pop ()} " )
57+ print (f"peek: { stack .peek ()} " )
58+ print (f"스택이 비었나요? { stack .isEmpty ()} " )
59+ stack ._printList ()
Original file line number Diff line number Diff line change 1+ class Queue (object ):
2+ def __init__ (self ):
3+ self .items = []
4+
5+ def isEmpty (self ):
6+ return not bool (self .items )
7+
8+ def enqueue (self , item ):
9+ self .items .insert (0 , item )
10+
11+ def dequeue (self ):
12+ return self .items .pop ()
13+
14+ def size (self ):
15+ return len (self .items )
16+
17+ def peek (self ):
18+ return self .items [- 1 ]
19+
20+ def __repr__ (self ):
21+ return f"{ self .items } "
22+
23+
24+ if __name__ == '__main__' :
25+ queue = Queue ()
26+ print ("Is the queue empty? " , queue .isEmpty ())
27+ print ("Adding 0 to 10 in the queue..." )
28+ for i in range (10 ):
29+ queue .enqueue (i )
30+ print ("Queue size: " , queue .size ())
31+ print ("Queue peek : " , queue .peek ())
32+ print ("Dequeue..." , queue .dequeue ())
33+ print ("Queue peek: " , queue .peek ())
34+ print ("Is the queue empty? " , queue .isEmpty ())
35+ print (queue )
You can’t perform that action at this time.
0 commit comments