Python 数据结构 之 栈 的顺序、链式存储结构
来源:互联网 发布:苹果电脑降价规律知乎 编辑:程序博客网 时间:2024/06/05 10:23
Python 数据结构 之 栈 的顺序、链式存储结构
栈的链式存储结构
Python 仿照C 语言实现 栈的链式、顺序存储结构
文章转载请注明: Python 数据结构 之 栈 的顺序、链式存储结构
代码地址:
https://github.com/WenkeZhou/PythonDataStructure/tree/master/struct/Stack
栈的顺序存储结构:
# !/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'MrHero'class SqStack(object): """ 栈的线性结构 """ def __init__(self, size): self.data = list(None for _ in range(size)) self.max_size = size self.top = -1 def get_length(self): # 返回栈的长度 return self.top + 1 def push(self, elem): # 进栈 if self.top + 1 == self.max_size: raise IndexError("Stack is full") else: self.top += 1 self.data[self.top] = elem def pop(self): # 出栈 if self.top == -1: raise IndexError("Stack is empty") else: self.top -= 1 return self.data[self.top + 1] def get_top(self): # 取栈顶元素 if self.top == -1: raise IndexError("Stack is empty") else: return self.data[self.top] def show_stack(self): # 从栈顶向下开始显示栈里面的元素 j = self.top while j >= 0: print self.data[j] j -= 1 def is_empty_stack(self): return self.top == -1if __name__ == '__main__': sqs = SqStack(5) sqs.push(1) sqs.push(2) sqs.push(3) sqs.show_stack()
栈的链式存储结构
# !/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'MrHero'class Node(object): # 节点 def __init__(self, data=None): self.data = data self.next = Noneclass LKStack(object): def __init__(self): self.top = Node(None) self.count = 0 def get_length(self): return self.count def get_top(self): # 返回栈顶元素 return self.top.data def is_empty(self): return self.count == 0 def push(self, elem): # 进栈 tmp = Node(elem) if self.is_empty(): self.top = tmp else: tmp.next = self.top self.top = tmp self.count += 1 def pop(self): # 出栈 if self.is_empty(): raise IndexError("Stack is empty!") else: self.count -= 1 elem = self.top.data self.top = self.top.next return elem def show_stack(self): # 从栈顶开始显示各节点值 if self.is_empty(): raise IndexError("Stack is empty!") else: j = self.count tmp = self.top while j > 0 and tmp: print tmp.data tmp = tmp.next j -= 1if __name__ == '__main__': lks = LKStack() for i in range(1, 5): lks.push(i) lks.show_stack() lks.pop() lks.show_stack()
文章转载请注明: Python 数据结构 之 栈 的顺序、链式存储结构
0 0
- Python 数据结构 之 栈 的顺序、链式存储结构
- Python 数据结构 之 队列 的顺序、链式存储结构
- 数据结构之栈的链式存储结构
- Python 数据结构 之 线性表 的链式存储结构
- Python 数据结构 之 串 的链式存储结构
- java 数据结构之 链式存储结构 栈
- 《数据结构和算法》之栈的链式存储结构
- Python 数据结构 之 线性表 的顺序存储结构
- Python 数据结构 之 串 的顺序存储结构
- 数据结构(栈):栈的链式存储结构
- 数据结构四栈的链式存储结构
- 数据结构:栈的链式存储结构
- 【数据结构基础】栈的链式存储结构
- 数据结构:栈的链式存储结构
- 栈的顺序存储结构和链式存储结构
- 栈的顺序存储结构和链式存储结构
- Day17、链式存储结构动态分配内存、栈的顺序存储结构和链式存储结构
- 数据结构的链式存储结构
- 同一id不得对相同问题重复发表内容一样的主题,不得发表无实质内容的文章
- 使用DenyHosts阻止SSH暴力攻击
- Python 数据结构 之 线性表 的链式存储结构
- 不得发表恶意诋毁腾讯公司、攻击本版面、辱骂版主或他版友以及损害他人合法权益的内容
- 严禁在本版面发表出售qb和账号内容的帖。关于买卖、交易。此类内容的帖子发现转水
- Python 数据结构 之 栈 的顺序、链式存储结构
- 101. Domino
- 利用泛型抽取Dao层,加事务注解问题(java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType)
- 102. Coprimes
- 【数据结构】队列-链表的实现
- 103. Traffic Lights
- 104. Little shop of flowers
- 105. Div 3
- http://bbs.baozoumanhua.com/forums/1/articles/87903|||;