码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构 栈(顺序表和链表实现) 回顾练习

时间:2017-02-19 12:44:14      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:elf   ack   append   sel   顺序   int   flow   ext   class   

 1 #!/usr/bin/env python3
 2 
 3 class StackUnderflow(ValueError):
 4         pass
 5 
 6 class Node(object):
 7         def __init__(self, elem, next_=None):
 8                 self.elem = elem
 9                 self.next = next_
10 
11 class LStack(object):
12         def __init__(self):
13                 self._elems = []
14 
15         def is_empty(self):
16                 return self._elems == []
17 
18         def push(self, elem):
19                 self._elems.append(elem)
20 
21         def pop(self):
22                 if self.is_empty():
23                         raise StackUnderflow
24                 return self._elems.pop()
25 
26         def top(self):
27                 if self.is_empty():
28                         raise StackUnderflow
29                 return self._elems[-1]
30 
31 class SStack(object):
32         def __init__(self):
33                 self._top = None
34 
35         def is_empty(self):
36                 return self._top == None
37 
38         def push(self, elem):
39                 self._top = Node(elem, self._top)
40 
41         def pop(self):
42                 if self.is_empty():
43                         raise StackUnderflow
44                 e = self._top.elem
45                 self._top = self._top.next
46                 return e
47 
48         def top(self):
49                 if self.is_empty():
50                         raise StackUnderflow
51                 return self._top.elem
52 
53 if __name__ == __main__:
54         """
55         ls = LStack()
56         ls.push(3)
57         ls.push(2)
58         print(ls.top())
59         print(ls.pop())
60         print(ls.pop())
61         """
62 #-----------------------------------
63         ss = SStack()
64         ss.push(3)
65         ss.push(2)
66         print(ss.top())
67         print(ss.pop())
68         print(ss.pop())

 

数据结构 栈(顺序表和链表实现) 回顾练习

标签:elf   ack   append   sel   顺序   int   flow   ext   class   

原文地址:http://www.cnblogs.com/xautxuqiang/p/6415375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!