1 stack的实现

实现接口:

init() 用于初始化stack,数据类型为list

size() 用于获得stack的大小

push() 用于往栈中添加元素,添加的元素类型可以是int或者list

top()获取栈顶元素

pop() 弹出并返回栈顶元素

print_stack() 打印栈

class Stack(object):    def __init__(self):        self.len = 0        self._stack = []    def init(self, init_list):        self._stack = init_list        self.len = len(init_list)    def size(self):        return self.len    def push(self, val):        if isinstance(val, int):            self._stack.append(val)            self.len += 1        elif 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 > 0        else:            self.len -= 1            return self._stack.pop()        return None    def 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 = 0        self._queue = []    def init(self, init_list):        self._queue = init_list        self.len = len(init_list)    def size(self):        return self.len    def push(self, val):        if isinstance(val, int):            self._queue.append(val)            self.len += 1        elif 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 > 0        self.len -= 1        return self._queue.pop(0)    def print_queue(self):        print('Front |', *self._queue, '| Rear >')

测试结果

最新文章

  1. ssh文件传输命令:sz与rz命令
  2. 【数据压缩】Huffman编码
  3. U盘文件偷窃程序
  4. HDU 4709:Herding
  5. 使用AlarmManager设置闹钟----之二
  6. IEEE 802.11 标准列表
  7. 巧用Excel分列功能处理数据
  8. CHARINDEX,PATINDEX,STUFF函数
  9. 介绍50个 WordPress 动作挂钩
  10. hdu1258 Sum It Up (DFS)
  11. HTML5基本标签
  12. html常用的基本标签
  13. css 如何隐藏滚动条
  14. Java 基本文件操作
  15. bootstrap modal 监听滚动条事件
  16. #include<bits/stdc++.h>的使用
  17. Connection reset原因分析和解决方案
  18. erlang程序发布的时候需要注意的地方
  19. 九,php中上传文件
  20. 问题13:如何在for语句中迭代多个可迭代的对象

热门文章

  1. docker出现相同的image条目的删除办法
  2. Chisel3 - Tutorial - ByteSelector
  3. 手写 new
  4. Java实现哥德巴赫猜想
  5. java实现第六届蓝桥杯居民集会
  6. java实现第四届蓝桥杯买不到的数目
  7. Linux 自动挂载与fstab文件修复
  8. jstat监控JVM内存使用、GC回收情况
  9. JSP基础知识点(转传智)
  10. 【百度前端技术学院 Day5/6】CSS盒模型及Float简单布局