Python 实现双链表,栈,队列
来源:互联网 发布:杭州宏杉科技 知乎 编辑:程序博客网 时间:2024/05/22 22:56
1.双链表
class Node(object): def __init__(self, value=None): self._prev = None self.data = value self._next = None def __str__(self): return "Node(%s)"%self.dataclass DoubleLinkedList(object): def __init__(self): self._head = Node() def insert(self, value): element = Node(value) element._next = self._head self._head._prev = element self._head = element def search(self, value): if not self._head._next: raise ValueError("the linked list is empty") temp = self._head while temp.data != value: temp = temp._next return temp def delete(self, value): element = self.search(value) if not element: raise ValueError('delete error: the value not found') element._prev._next = element._next element._next._prev = element._prev return element.data def __str__(self): values = [] temp = self._head while temp and temp.data: values.append(temp.data) temp = temp._next return "DoubleLinkedList(%s)"%values2. 栈
class Stack(object): def __init__(self): self._top = 0 self._stack = [] def put(self, data): self._stack.insert(self._top, data) self._top += 1 def pop(self): if self.isEmpty(): raise ValueError('stack 为空') self._top -= 1 data = self._stack[self._top] return data def isEmpty(self): if self._top == 0: return True else: return False def __str__(self): return "Stack(%s)"%self._stack
3.队列
class Queue(object): def __init__(self, max_size=float('inf')): self._max_size = max_size self._top = 0 self._tail = 0 self._queue = [] def put(self, value): if self.isFull(): raise ValueError("the queue is full") self._queue.insert(self._tail, value) self._tail += 1 def pop(self): if self.isEmpty(): raise ValueError("the queue is empty") data = self._queue.pop(self._top) self._top += 1 return data def isEmpty(self): if self._top == self._tail: return True else: return False def isFull(self): if self._tail == self._max_size: return True else: return False def __str__(self): return "Queue(%s)"%self._queue
0 0
- Python 实现双链表,栈,队列
- python实现栈和队列
- Python实现栈和队列
- python栈和队列的实现
- python实现stack(栈)和队列(queue)
- 用python实现栈和队列
- Python :用两个栈实现队列
- 7用两个栈实现队列python
- Python栈和队列的实现
- 栈和队列的python实现
- 【数据结构】队列和栈 Python 实现
- Python实现优先队列
- 用Python实现队列
- Python实现优先队列
- Python 实现队列
- python 刷题:实现队列
- python基础----实现队列
- Python实现队列数据结构
- 包装类-字节数组-字符数组间的转换
- TCP数据包重组实现分析
- Fragment生命周期
- 【aixiv2016】DeepText A Unified Framework for Text Proposal Generation and Text Detection in Natural I
- 初级数据模型讲解
- Python 实现双链表,栈,队列
- 添加静态的sitemap的html等静态文件给自己的网站添加静态的sitemap的html等静态文件
- hdu1281+坐标构图+二分匹配
- css3背景色渐变两篇文章偷偷保存一下
- 最大的奇约数
- 每天一题LeetCode[第十二天]
- 第二章 Spring MVC入门
- Android<我所理解的Fragment>
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)