#基于Python2.7

#基于顺序表实现

#发现用Python写题时,没有像写C++时方便的STL可用,不过查阅资料之后发现用class实现也很简洁,不过效率应该不是很高

Python实现栈并使用:

  1. class SStack():
  2. def __init__(self):
  3. self._elems=[]
  4. def is_empty(self):
  5. return self._elems==[]
  6. def top(self):
  7. #if self._elems==[]:
  8. # raise StackUnderflow("in SStack.top()")
  9. return self._elems[-1]
  10. def push(self,e):
  11. self._elems.append(e)
  12. def pop(self):
  13. #if self._elems==[]:
  14. # raise StackUnderflow("in SStack.pop()")
  15. return self._elems.pop()
  16. S=SStack()
  17. for i in range(3):
  18. S.push(i)
  19. while not S.is_empty():
  20. temp=S.top()
  21. print temp
  22. S.pop()

Python实现队列并使用:

  1. class SQueue():
  2. def __init__(self,init_len=8):
  3. self._len=init_len
  4. self._elems=[0]*init_len
  5. self._head=0
  6. self._num=0
  7. def is_empty(self):
  8. return self._num==0
  9. def peek(self):
  10. #if self._num==0:
  11. # raise QueueUnderflow
  12. return self._elems[self._head]
  13. def dequeue(self):
  14. #if self._num==0:
  15. # raise QueueUnderflow
  16. e=self._elems[self._head]
  17. self._head=(self._head+1)%self._len
  18. self._num-=1
  19. return e
  20. def enqueue(self,e):
  21. if self._num==self._len:
  22. self.__extend()
  23. self._elems[(self._head+self._num)%self._len]=e
  24. self._num+=1
  25. def __extend(self):
  26. old._len=self._len
  27. self._len*=2
  28. new_elems=[0]*self._len
  29. for i in range(old_len):
  30. new_elems[i]=self._elems[(self._head+i)%old_len]
  31. self._elems,self._head=new_elems,0
  32. Q=SQueue()
  33. for i in range(5):
  34. Q.enqueue(i)
  35. while not Q.is_empty():
  36. print Q.dequeue()
  37. Q.peek()

Python 实现栈与队列的更多相关文章

  1. 【DataStructure In Python】Python模拟栈和队列

    用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque.以下内容为栈: #! /usr/bin/env python # DataStructure Stack ...

  2. 使用python实现栈和队列

    1.使用python实现栈: class stack(): def __init__(self): self.stack = [] def empty(self): return self.stack ...

  3. Python实现栈、队列

    目录 1. 栈的Python实现 1.1 以列表的形式简单实现栈 1.2 以单链表形式实现栈 2. 队列的Python实现 2.1 以列表实现简单队列 2.2 以单链表形式实现队列   本文将使用py ...

  4. python之栈与队列

    这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...

  5. python之 栈与队列

    忍不住想报一句粗口"卧槽"这尼玛python的数据结构也太特么方便了吧 想到当初学c语言的数据结构的时候,真的是一笔一划都要自己写出来,这python尼玛直接一个模块就ok 真的是 ...

  6. python之栈和队列

    1. 栈 1.1 示例 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: .py @time: 20 ...

  7. Python数据结构——栈、队列的实现(二)

    1. 一个列表实现两个栈 class Twostacks(object): def __init__(self): self.stack=[] self.a_size=0 self.b_size=0 ...

  8. Python数据结构——栈、队列的实现(一)

    1. 栈 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top).栈的基本操作有PUSH(入栈)和POP(出栈).栈又被称为LIFO(后入先出)表. 1.1 ...

  9. Python的栈和队列实现

    栈 class Node: def __init__(self, data=None): self.next = None self.data = data class Stack: def __in ...

随机推荐

  1. [已转移]JavaScript事件---DOM事件流

    该文章已转移到博客:https://cynthia0329.github.io/ 事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件 这个传播过程即DOM事件流. ...

  2. Java练习 SDUT-1117_求绝对值(选择结构)

    C语言实验--求绝对值(选择结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 从键盘上输入任意一个整数,然后输出它 ...

  3. dva与create-react-app的结合使用

    dva与我们的create-react-app创建的两款脚手架是我们写react项目的两款优秀框架,之前一种使用create-react-app这款脚手架进行开发.然后这个框架美中不足的是redux方 ...

  4. 【C++】STL :栈

    c++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO) 使用该容器时需要包含#include<stack>头文件: 定义stack对象的示例代码如下: sta ...

  5. DateFormat 日期格式化类(必须掌握)

    package com.sxt.utils.date1; import java.util.Date; import java.text.DateFormat; import java.text.Si ...

  6. Myeclipse jdk的安装

  7. 【批量添加】-拼接sql字符串 标签: 批量添加 2015-12-13 17:49 2070人阅读 评论(33)

    现在做的一个项目需要用到批量添加,但是封装的底层没有这个方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 具体实现流程:首先将需要的数据存储到实体的list中,然后将这个li ...

  8. 洛谷P1049 装箱问题

    //01背包 价值等于体积 求所剩最小体积 #include<bits/stdc++.h> using namespace std; ; ; int c,n,v[maxn],f[maxv] ...

  9. EF的多线程与分库架构设计实现(2)

    距离上次讲解EF6分库架构(https://www.cnblogs.com/gbat/p/6374607.html)实现已经过去2年了..上次发出来后,一直到现在依然有很多人陆陆续续的加我好友,问我要 ...

  10. Android 申请权限示例

    1.在Mainifest.xml中添加 <?xml version="1.0" encoding="utf-8"?> <manifest xm ...