美文网首页
1. 数据结构与算法:堆栈

1. 数据结构与算法:堆栈

作者: sszhang | 来源:发表于2018-06-05 17:03 被阅读0次

堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行。

Stack()创建堆栈
push(item)向栈顶插入项
pop() 返回栈顶的项,并从堆栈中删除该项
clear() 清空堆栈
empty() 判断堆栈是否为空
size() 返回堆栈中项的个数
top() 返回栈顶的项

stack.png
Class Stack():
  def __init__(self):
    self.items =[]

  def push(self, item):
    self.items.append(item)

  def pop(self):
    self.items.pop()

  def clear(self):
    del self.items[:]

  def empty(self):
    return self.size()==0

  def size(self):
    return len(self.items)

  def top(self):
    return self.items[self.size()-1]

十进制转二进制 是一个应用堆栈的典型案例。十进制转二进制 采用“除2取余,逆序排列”的方法,如图所示:


stack_application.png
def divideBy2(decNumber):
  remstack = Stack()

  while decNumber > 0:
    rem = decNum %2
    remstack.push(rem)
    decNumber  = decNumber //2

  binString = ' '
  while not remstack.empty()
    binString = binString + str(remstack.pop())
    return binString

if __name__ == '__main__':
  print(divideBy2(43))

相关文章

  • 1. 数据结构与算法:堆栈

    堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行。 S...

  • 数据结构与算法 (栈实现篇)

    数据结构与算法 (栈实现篇) 在数据结构与算法中,栈(stack)又名堆栈,栈是一种受限的线性储存结构,只允许在一...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 最新完整数据结构与算法

    最新完整数据结构与算法 P11_课程介绍 P22_数据结构与算法概述_数据结构 P33_数据结构与算法概述_算法 ...

  • 02数据结构与算法复杂度分析上

    数据结构与算法之美专栏笔记 1. 为什么要学习数据结构和算法 数据结构和算法本身解决的是“快”和“省”的问题,让代...

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

  • 算法与数据结构(1),List

    算法与数据结构(1),List 算法与数据结构(2),Map 算法与数据结构(3),并发结构 习惯了,深夜更新博客...

  • 数据结构与算法-目录

    数据结构与算法-目录 C语言篇 数据结构和算法-C语言篇1-绪论数据结构和算法-C语言篇2-初识算法数据结构与算法...

网友评论

      本文标题:1. 数据结构与算法:堆栈

      本文链接:https://www.haomeiwen.com/subject/fiipsftx.html