Python干货整理之数据结构篇
1 stack的实现
实现接口:
init() 用于初始化stack,数据类型为list
size() 用于获得stack的大小
push() 用于往栈中添加元素,添加的元素类型可以是int或者list
top()获取栈顶元素
pop() 弹出并返回栈顶元素
print_stack() 打印栈
class Stack(object):def __init__(self):self.len = 0self._stack = []def init(self, init_list):self._stack = init_listself.len = len(init_list)def size(self):return self.lendef push(self, val):if isinstance(val, int):self._stack.append(val)self.len += 1elif isinstance(val, list):self._stack.extend(val)self.len += len(val)else:assert isinstance(val, int) or isinstance(val, list)def top(self):return None if self.len == 0 else self._stack[self.len - 1]def pop(self):if self.len == 0:assert self.len > 0else:self.len -= 1return self._stack.pop()return Nonedef print_stack(self):print('Bottom |', *self._stack, '| Top >')
测试结果

2 quque的实现
实现接口:
init() 用于初始化队列,数据类型为list
size() 用于获得队列的大小
push() 用于往队列尾部添加元素,添加的元素类型可以是int或者list
rear()获取队列尾部元素
front() 获取队列头部元素
pop() 弹出并返回队列头部元素
print_queue() 打印队列
class Queue(object):def __init__(self):self.len = 0self._queue = []def init(self, init_list):self._queue = init_listself.len = len(init_list)def size(self):return self.lendef push(self, val):if isinstance(val, int):self._queue.append(val)self.len += 1elif isinstance(val, list):self._queue.extend(val)self.len += len(val)else:assert isinstance(val, int) or isinstance(val, list)def rear(self):return None if self.len == 0 else self._queue[self.len - 1]def front(self):return None if self.len == 0 else self._queue[0]def pop(self):assert self.len > 0self.len -= 1return self._queue.pop(0)def print_queue(self):print('Front |', *self._queue, '| Rear >')
测试结果

Python干货整理之数据结构篇的更多相关文章
- Unite 2017 干货整理 同步篇
http://www.kisence.com/2017/05/17/unite-2017-gan-huo-zheng-li-tong-bu-pian/ Unite 2017 干货整理 同步篇 2017 ...
- Python数学建模-02.数据导入
数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- Python下载Yahoo!Finance数据
Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.
- 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...
- Delphi中使用python脚本读取Excel数据
Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
- 新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t
新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...
- 新秀nginx源代码分析数据结构篇(两) 双链表ngx_queue_t
nginx源代码分析数据结构篇(两) 双链表ngx_queue_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn. ...
- python打印表格式数据,留出正确的空格和段落星号或注释
python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...
随机推荐
- Rocket - diplomacy - AddressSet
https://mp.weixin.qq.com/s/ZsEVt1GslL7ufJdJlgpfNQ 介绍AddressSet的实现. 1. 基本定义 使用base/mask ...
- Java实现 LeetCode 826 安排工作以达到最大收益(暴力DP)
826. 安排工作以达到最大收益 有一些工作:difficulty[i] 表示第i个工作的难度,profit[i]表示第i个工作的收益. 现在我们有一些工人.worker[i]是第i个工人的能力,即该 ...
- Java实现 蓝桥杯 算法提高 抽卡游戏
试题 算法提高 抽卡游戏 某个抽卡游戏卡池抽出限定卡的概率为p,该游戏有一个"井"的机制,抽满k次卡后直接送这张限定卡.试求获得这张限定卡需要的期望抽卡次数.输入为一行,用空格隔开 ...
- Java实现 LeetCode 409 最长回文串
409. 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意 ...
- Java实现 蓝桥杯VIP 算法提高 解二元一次方程组
算法提高 解二元一次方程组 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个二元一次方程组,形如: a * x + b * y = c; d * x + e * y = f; x,y代 ...
- java实现第五届蓝桥杯排列序数
排列序数 如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号: abcd 0 abdc 1 acbd 2 acdb 3 adbc 4 adcb 5 bac ...
- cuda 9.0
https://docs.nvidia.com/cuda/archive/9.0/index.html cuda9.0工具包
- Spring AOP 扫盲
关于AOP 面向切面编程(Aspect-oriented Programming,俗称AOP)提供了一种面向对象编程(Object-oriented Programming,俗称OOP)的补充,面向对 ...
- 【JAVA习题三十】求0—7所能组成的奇数个数
package erase; public class 求0到7所能组成的奇数个数 { public static void main(String[] args) { /* * 求0—7所能组成的奇 ...
- 解读三组容易混淆的Dockerfile指令
长话短说,今天分享三组容易混淆的Dockerfile指令, 帮助大家编写更优雅的Dockfile文件.构建更纯净的Docker镜像. COPY vs ADD COPY.ADD主体功能类似:从指定位置拷 ...