Python干货整理之数据结构篇
2024-08-23 22:27:18
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 >')
测试结果
最新文章
- ssh文件传输命令:sz与rz命令
- 【数据压缩】Huffman编码
- U盘文件偷窃程序
- HDU 4709:Herding
- 使用AlarmManager设置闹钟----之二
- IEEE 802.11 标准列表
- 巧用Excel分列功能处理数据
- CHARINDEX,PATINDEX,STUFF函数
- 介绍50个 WordPress 动作挂钩
- hdu1258 Sum It Up (DFS)
- HTML5基本标签
- html常用的基本标签
- css 如何隐藏滚动条
- Java 基本文件操作
- bootstrap modal 监听滚动条事件
- #include<;bits/stdc++.h>;的使用
- Connection reset原因分析和解决方案
- erlang程序发布的时候需要注意的地方
- 九,php中上传文件
- 问题13:如何在for语句中迭代多个可迭代的对象