EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
python实现堆栈堆栈是一个后进先出的数据结构,其工作方式就像一堆汽车排队进去一个死胡同里面,最先进去的一定是最后出来。 我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现栈的出栈pop和入栈push的操作,list.append(obj)意思是向列表添加一个对象obj,list.pop(index=-1)意思是删除指定位置的对象,默认是最后一个对象,也就是说list.pop(),是删除列表中下标最大的元素。可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了。 stack.py的程序: 代码如下:
8 e% N# I( K9 @ U. e* N2 B$ ~ Z4 X
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Stack(): def __init__(self,size): self.size=size self.stack=[] self.top=-1 def push(self,ele): #入栈之前检查栈是否已满 if self.isfull(): raise exception("out of range") else: self.stack.append(ele) self.top=self.top+1 def pop(self): # 出栈之前检查栈是否为空 if self.isempty(): raise exception("stack is empty") else: self.top=self.top-1 return self.stack.pop() def isfull(self): return self.top+1==self.size def isempty(self): 1 a: J z+ t" v: u0 S0 J
return self.top==-1
* E/ l6 r! w% p3 t" w# D9 E再写一个程序文件,stacktest.py 使用栈,内容如下: 代码如下: 1 2 3 4 5 6 7 #!/usr/bin/python from stack import Stack s=Stack(20) for i in range(3): s.push(i) s.pop() % _. U- g- i3 @5 d5 i1 A( U+ x4 Y
print s.isempty() weibo.com/ttarticle/p/show?id=2309404963800309956654 weibo.com/ttarticle/p/show?id=2309404963800343511106 weibo.com/ttarticle/p/show?id=2309404963800368676885 weibo.com/ttarticle/p/show?id=2309404963800406425690 weibo.com/ttarticle/p/show?id=2309404963800439980172 weibo.com/ttarticle/p/show?id=2309404963800465145966 weibo.com/ttarticle/p/show?id=2309404963800485855281 weibo.com/ttarticle/p/show?id=2309404963800670666827 weibo.com/ttarticle/p/show?id=2309404963800725192722 weibo.com/ttarticle/p/show?id=2309404963800762941457 weibo.com/ttarticle/p/show?id=2309404963800809078882 weibo.com/ttarticle/p/show?id=2309404963800834244724 weibo.com/ttarticle/p/show?id=2309404963800855216133 weibo.com/ttarticle/p/show?id=2309404963800871993373 weibo.com/ttarticle/p/show?id=2309404963800892702727 weibo.com/ttarticle/p/show?id=2309404963800913936450 weibo.com/ttarticle/p/show?id=2309404963800934908008 weibo.com/ttarticle/p/show?id=2309404963800955617286 weibo.com/ttarticle/p/show?id=2309404963800985239578 weibo.com/ttarticle/p/show?id=2309404963801002016902 weibo.com/ttarticle/p/show?id=2309404963801052086305 weibo.com/ttarticle/p/show?id=2309404963801115000889 weibo.com/ttarticle/p/show?id=2309404963801157206086 weibo.com/ttarticle/p/show?id=2309404963801199149090 weibo.com/ttarticle/p/show?id=2309404963801232703534 weibo.com/ttarticle/p/show?id=2309404963801270452288 weibo.com/ttarticle/p/show?id=2309404963801291423986 weibo.com/ttarticle/p/show?id=2309404963801316589612 weibo.com/ttarticle/p/show?id=2309404963801337561139 1 T+ e$ ^8 n) w% H
weibo.com/ttarticle/p/show?id=2309404963801358532740 ; }/ N9 a: X n" s9 G6 i
python 实现队列 队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元素删除。 我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现队列的入队enqueue和出队dequeue的操作,上面栈一个元素每次出去是列表的最后一个,直接用list.pop()出栈,而出队列每次是第一个,所以要用list.pop(0)出队列 weibo.com/ttarticle/p/show?id=2309404964059492516280 weibo.com/ttarticle/p/show?id=2309404964059530264962 weibo.com/ttarticle/p/show?id=2309404964059572207761 weibo.com/ttarticle/p/show?id=2309404964059601568094 weibo.com/ttarticle/p/show?id=2309404964059920334999 weibo.com/ttarticle/p/show?id=2309404964059958083663 weibo.com/ttarticle/p/show?id=2309404964060083913002 weibo.com/ttarticle/p/show?id=2309404964060100689944 weibo.com/ttarticle/p/show?id=2309404964060113272898 weibo.com/ttarticle/p/show?id=2309404964060126118163 weibo.com/ttarticle/p/show?id=2309404964060138438902 weibo.com/ttarticle/p/show?id=2309404964060256141751 weibo.com/ttarticle/p/show?id=2309404964060268724386 weibo.com/ttarticle/p/show?id=2309404964060281307659 weibo.com/ttarticle/p/show?id=2309404964060293890641 weibo.com/ttarticle/p/show?id=2309404964060306211240 weibo.com/ttarticle/p/show?id=2309404964060449079625 weibo.com/ttarticle/p/show?id=2309404964060461400185 weibo.com/ttarticle/p/show?id=2309404964060474245719 weibo.com/ttarticle/p/show?id=2309404964060486828643 weibo.com/ttarticle/p/show?id=2309404964060709126637 weibo.com/ttarticle/p/show?id=2309404964060725903771 weibo.com/ttarticle/p/show?id=2309404964060742418546 weibo.com/ttarticle/p/show?id=2309404964060755263588 weibo.com/ttarticle/p/show?id=2309404964060767584572 weibo.com/ttarticle/p/show?id=2309404964060872442015 weibo.com/ttarticle/p/show?id=2309404964060906258715 weibo.com/ttarticle/p/show?id=2309404964060931162556 weibo.com/ttarticle/p/show?id=2309404964060973367685
/ }1 w0 C; L1 B2 X* X. Qweibo.com/ttarticle/p/show?id=2309404964061002465341
% U# N$ q1 t4 e! T代码如下: 1 20 j+ X7 t" ]2 c0 ^& t* O2 d
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 class Queue(): def __init__(self,size): self.size=size; self.front=-1; self.rear=-1; self.queue=[]; def enqueue(self,ele): #入队操作 if self.isfull(): raise exception("queue is full"); else: self.queue.append(ele) self.rear=self.rear+1 def dequeue(self): #出队操作 if self.isempty(): raise exception("queue is empty") else: self.front=self.front+1 return self.queue[self.front] def isfull(self): return self.rear-self.front+1==self.size def isempty(self): return self.front==self.rear q=Queue(10); for i in range(3): q.enqueue(i) print q.dequeue()
( t i; h$ B7 z: b8 {( Pprint q.isempty()
- W" C* T: ]7 L/ @ Vweibo.com/ttarticle/p/show?id=2309404964043600298502
7 H, \" z6 [7 o# ^8 i7 hweibo.com/ttarticle/p/show?id=2309404964043621270062 M' A0 J3 Q/ ]1 G" t
weibo.com/ttarticle/p/show?id=2309404964043638309435
2 v% S! y& D8 J# r* pweibo.com/ttarticle/p/show?id=2309404964043655086163
% _7 T1 ^/ g$ m. S& J4 `weibo.com/ttarticle/p/show?id=2309404964043713806364
; t6 q q2 [4 Fweibo.com/ttarticle/p/show?id=23094049640437263892866 J3 @2 S j3 J
weibo.com/ttarticle/p/show?id=23094049640437387101642 |9 w+ }( b' i) c) n
weibo.com/ttarticle/p/show?id=23094049640437512931817 @- H2 h& ]. f
weibo.com/ttarticle/p/show?id=2309404964043772526699/ R2 h7 `7 Q4 G8 U$ K- Z8 f \
weibo.com/ttarticle/p/show?id=23094049640439232595409 D( P! |% w2 `2 m% |- ?& ~/ {- k
weibo.com/ttarticle/p/show?id=23094049640439358423594 K; J/ \* L& ] f( i$ H
weibo.com/ttarticle/p/show?id=23094049640439486877111 _* q' w; {( @ f% f4 Y
weibo.com/ttarticle/p/show?id=2309404964043965202563/ Q7 X6 Q. P( b
weibo.com/ttarticle/p/show?id=23094049640439777856427 [, T8 F9 y; _0 V
weibo.com/ttarticle/p/show?id=2309404964044049088882& r4 O2 h$ X/ S, v# N
weibo.com/ttarticle/p/show?id=2309404964044196151334
% H2 n+ F) O6 d9 N3 j lweibo.com/ttarticle/p/show?id=23094049640442758435591 |1 Z0 i7 H- @8 I* ^- ^8 d/ W; d
weibo.com/ttarticle/p/show?id=2309404964044430770628
. V( B. y4 M/ o+ N! `weibo.com/ttarticle/p/show?id=2309404964044451741764
2 W/ z2 ?( w, Oweibo.com/ttarticle/p/show?id=23094049640444645874194 ?, X7 Q0 g, |! v' @9 U
weibo.com/ttarticle/p/show?id=2309404964044485558495
8 _$ _5 Y, J+ j) }weibo.com/ttarticle/p/show?id=2309404964044497879732
9 v+ I( U: p( K$ X5 m4 W8 vweibo.com/ttarticle/p/show?id=2309404964044514656409- f! M0 K( H# `* T! Y; \
weibo.com/ttarticle/p/show?id=2309404964044535627823( V7 e- {# J: ]. n9 v0 a H$ M
weibo.com/ttarticle/p/show?id=2309404964044552405070
& `+ k H3 z2 b0 w# dweibo.com/ttarticle/p/show?id=2309404964044569444484
+ k' a( J$ k) ]7 \weibo.com/ttarticle/p/show?id=2309404964044586222041" W3 B7 M1 c; k; o; q! h
weibo.com/ttarticle/p/show?id=23094049640446111255765 u# r2 j( W, w: n! ^
weibo.com/ttarticle/p/show?id=2309404964044623970571
% Y4 w% r! f" P, y# u5 E! E* a& nweibo.com/ttarticle/p/show?id=23094049640446365533516 r$ W: j0 j' q+ h/ \* D8 G7 n/ K
weibo.com/ttarticle/p/show?id=23094049640446488740409 h' j7 P5 R% \* c# Y7 ~: M3 d. m
weibo.com/ttarticle/p/show?id=2309404964044657525363# H6 ?: q; m% A; U' x) |
weibo.com/ttarticle/p/show?id=2309404964044674040074
]' F2 R; B3 C* e, Sweibo.com/ttarticle/p/show?id=2309404964044686623056
2 E, R+ ^" s4 b) T! e' q# Tweibo.com/ttarticle/p/show?id=2309404964044699206002
/ r2 y$ _6 X6 J) C: C/ g; K& Xweibo.com/ttarticle/p/show?id=2309404964044711788669
2 d. x% M7 B" E. U& S' B& N- Vweibo.com/ttarticle/p/show?id=2309404964044724371645/ B! r3 {* ~$ w4 t8 x; W
weibo.com/ttarticle/p/show?id=2309404964044783354197
5 W) O7 d3 m. Y! A2 n7 C* y2 O+ A' z) i, s2 N8 b
% @/ U$ H1 ~4 V
8 p* I1 C% }5 v3 S% |5 e |