`
cakin24
  • 浏览: 1388142 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

python数据结构之栈

阅读更多
一 介绍
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。
 
二 封装一个堆栈类
  1. # 简单的堆栈模块
  2. classPyStack:
  3. def __init__(self,size =20):
  4. self.stack =[]
  5. self.size = size
  6. self.top =-1
  7. def setsize(self,size):
  8. self.size = size
  9. def push(self,element):
  10. if self.isFull():
  11. raiseStackException('PyStackOverflow')
  12. else:
  13. element = self.stack.append(element)
  14. self.top = self.top +1
  15. def pop(self):
  16. if self.isEmpty():
  17. raiseStackException('PyStackUnderflow')
  18. else:
  19. element = self.stack[-1]
  20. self.top = self.top -1
  21. del self.stack[-1]
  22. return element
  23. defTop(self):
  24. return self.top
  25. def empty(self):
  26. self.stack =[]
  27. self.top =-1
  28. def isEmpty(self):
  29. if self.top ==-1:
  30. returnTrue
  31. else:
  32. returnFalse
  33. def isFull(self):
  34. if self.top == self.size -1:
  35. returnTrue
  36. else:
  37. returnFalse
  38. classStackException(Exception):
  39. def __init__(self,data):
  40. self.data = data
  41. def __str__(self):
  42. return self.data
  43. if __name__ =='__main__':
  44. stack =PyStack()
  45. for i in range(10):
  46. stack.push(i)
  47. print(stack.Top())
  48. for i in range(10):
  49. print(stack.pop())
  50. stack.empty()
  51. for i in range(21):
  52. stack.push(i)#此处将引发异常
 
三 运行结果
9
9
8
7
6
5
4
3
2
1
0
Traceback (most recent call last):
  File "E:\python\work\PyStack.py", line 54, in <module>
    stack.push(i)               #此处将引发异常
  File "E:\python\work\PyStack.py", line 11, in push
    raise StackException('PyStackOverflow')
StackException: PyStackOverflow
分享到:
评论

相关推荐

    python数据结构之栈和队列.md

    python数据结构之栈和队列.md

    Python数据结构之栈、队列及二叉树定义与用法浅析

    本文实例讲述了Python数据结构之栈、队列及二叉树定义与用法。分享给大家供大家参考,具体如下: 目前只实现了三种,栈、队列和二叉树,哪天得空继续补吧~ 1. 栈 #栈 class Stack: def __init__(self,size = 16): ...

    Python数据结构之栈、队列的实现代码分享

    ### Python数据结构之栈、队列的实现及应用详解 #### 一、栈(Stack) **栈**是一种特殊的线性表,只允许在一端进行插入和删除操作,这端通常被称为**栈顶**(top),而与之相对的是**栈底**(bottom)。这种数据结构...

    Python 数据结构 16栈的实现.mp4

    Python 数据结构 16栈的实现.mp4

    Python数据结构与算法分析(第2版)1

    《Python数据结构与算法分析(第2版)》是一本专为对计算机科学和Python编程感兴趣的读者准备的书籍。本书旨在帮助读者理解数据结构、抽象数据类型和算法的重要性,同时提供Python语言的基础知识和实践应用。 在...

    python版数据结构学习

    ##### 2.5 Python数据结构的性能 讨论了Python内置数据结构(如列表和字典)的性能特点,并分析了它们在不同情况下的表现。 ##### 2.6 列表 深入研究Python列表的工作原理,包括其内部实现机制以及常见操作的复杂度...

    Python数据结构课件.rar

    Python数据结构是编程基础的重要组成部分,它涉及到如何有效地组织和管理数据,以便高效地执行各种操作。本课件集合了关于Python数据结构的详细讲解,是期末考试复习的理想资源,同时也适合希望深入理解数据存储和...

    python数据结构与算法-已转档.pdf

    标题中的“Python数据结构与算法”指向了文档内容的核心主题,即通过Python语言来探索和实现数据结构与算法的相关知识。这部分内容主要涵盖Python编程语言中数据结构的实现方式、算法的设计技巧以及递归等编程概念的...

    Python数据结构预算法之栈(Stack)的实现与应用 数据结构预算法.pdf

    Python中的栈(Stack)是一种基于“后进先出”(LIFO)原则的数据结构,它在数据处理中扮演着重要角色。栈的操作主要包括入栈(push)、出栈(pop)、查看栈顶元素(peek)以及检查栈是否为空(is_empty)。在Python...

    python数据结构与算法详解与源码

    数据结构与算法(Python) 一、引入概念 1-01算法引入 1-02 时间复杂度与大O表示法 1-03-最坏时间复杂度与计算规则 1-04-常见时间复杂度与大小关系 1-05-代码执行时间测量模块 1-06-Python列表类型不同操作的...

    Python数据结构与算法.chm

    《Python数据结构与算法》是一本深入探讨Python编程中数据结构和算法的专著,共有22个章节,旨在帮助读者理解并掌握Python语言在处理数据和优化计算过程中的核心概念。这本书以其清晰的讲解和易懂的例子,使得即便是...

    Python数据结构和大厂面试攻略

    顺序表是最基本的数据结构之一,Python 中的 list 和 tuple 两种类型采用的就是顺序表的实现技术。顺序表可以分为两种实现模型:顺序表和链表。顺序表将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们...

    裘宗燕-数据结构与算法python描述-ppt及源代码

    在Python中,常见的数据结构包括数组、链表、栈、队列、堆、树、图等。数组是一种固定大小的序列,可以快速访问任意位置的元素;链表则允许动态地增加或减少元素,但访问速度相对较慢。栈是一种后进先出(LIFO)的...

    数据结构与算法(Python版)《数据结构课程设计》教学大纲.pdf

    数据结构与算法是计算机科学与技术专业的重要课程,Python版的数据结构课程设计旨在深化学生对这一领域的理解和应用能力。这门课程以60个学时,4个学分的形式进行,要求学生具备基础的数据结构知识,如链表、树、图...

    PYTHON数据结构和算法-译稿-1-基本数据结构.pdf

    4. **列表(List)**:列表是Python中最常用的数据结构之一,它可以存储任意类型的对象,并支持动态增删改查操作。列表本质上是连续的内存空间,因此对于插入和删除操作,其性能会根据元素的位置有所不同。 理解...

Global site tag (gtag.js) - Google Analytics