
数据结构
小饼干超人
这个作者很懒,什么都没留下…
展开
-
python实现哈希表
文章目录哈希表的概念哈希表的实现程序运行123456哈希表的概念哈希函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,即为Hash(key)=Addr。哈希表:是根据关键字而直接进行访问的数据结构。也就是说,哈希表建立了关键字和存储地址之间的一种直接映射关系。哈希表的实现假设哈希表长度为11,分别用两个列表来保存关键字和数据。代码中的print()函数是为了方便理解,才加上的...翻译 2019-06-12 19:26:49 · 9203 阅读 · 5 评论 -
【递归】进制转换、字符串反转、判断回文
文章目录进制转换——十进制转为任意进制递归栈进制转换——十进制转为任意进制递归def toStr(n,base): convertString = "0123456789ABCDEF" if n < base: return convertString[n] else: return toStr(n//base,base) + convertS...翻译 2019-06-12 09:28:24 · 316 阅读 · 0 评论 -
python实现栈Stack
用list来实现栈,栈的top元素为list[-1],base元素为list[0]class Stack: def __init__(self): self.items = [] def isEmpty(self): # 判断是否为空 return self.items == [] def push(self, item...翻译 2019-06-11 10:23:00 · 2314 阅读 · 2 评论 -
python 【栈】判断括号匹配问题
from pythonds.basic import Stackdef parChecker(symbolString): s=Stack() balanced=True index=0 while index<len(symbolString) and balanced: symbol=symbolString[index] ...翻译 2019-06-11 11:20:13 · 1666 阅读 · 0 评论 -
python【栈】中缀表达式转后缀表达式
文章目录题目思路题目把中缀表达式转为后缀表达式,如:(A+B)∗C−(D−E)∗(F+G)( A + B ) * C - ( D - E ) * ( F + G )(A+B)∗C−(D−E)∗(F+G)转为AB+C∗DE−FG+∗−AB+C*DE-FG+*-AB+C∗DE−FG+∗−思路创建一个字典, prec,用来保存运算符的优先级创建一个空栈,opStack,用来保存运算符...翻译 2019-06-11 15:49:27 · 2233 阅读 · 1 评论 -
pytho实现队列并解决约瑟夫环问题
文章目录队列示意图队列的基本操作队列的应用:约瑟夫环队列示意图队列的基本操作class Queue: def __init__(self): self.items = [] def isEmpty(self): # 判断是否为空 return self.items == [] def enqueue(self, item...翻译 2019-06-11 19:04:41 · 365 阅读 · 0 评论 -
python【栈】 后缀表达式求值
文章目录题目思路题目根据后缀表达式,求出运算结果。假设:后缀表达式是由空格为分隔符的字符串操作符是*, /, +, -操作数都是个位数代码中的Stack()来自于python实现栈Stack思路创建一个空栈operandStack把后缀表达式postfixExpr由字符串转为列表tokenList从左到右扫描这个列表tokenList中的每一个token1. 如果to...翻译 2019-06-11 16:28:57 · 2746 阅读 · 0 评论 -
python实现双端队列并解决判断回文字符串的问题
文章目录双端队列示意图双端队列的基本操作双端队列的应用:判断回文字符串双端队列示意图双端队列的基本操作右边的元素是队头class Deque: def __init__(self): self.items = [] def isEmpty(self): # 判断是否为空 return self.items == [] ...翻译 2019-06-11 19:40:31 · 540 阅读 · 0 评论 -
python【树】列表实现、类实现
文章目录列表实现类实现列表实现树的结构是root=[r, [], []]root[0]=根结点,root[1]=左子树,root[2]=右子树插入操作,会把新的节点当作原来节点的父节点。def BinaryTree(r): return [r, [], []]def insertLeft(root, newBranch): # root[0]=根结点,root[1]=...翻译 2019-06-13 19:31:54 · 939 阅读 · 0 评论 -
python【排序】冒泡、选择、插入、归并、快速排序
文章目录冒泡排序写法一写法二短冒泡排序冒泡排序写法一def bubbleSort(alist): for passnum in range(len(alist)-1,0,-1): for i in range(passnum): if alist[i]>alist[i+1]: alist[i],alist[...翻译 2019-06-12 20:38:29 · 397 阅读 · 0 评论 -
python【栈】进制转换
文章目录十进制转二进制十进制转任意进制十进制转二进制其中Stack除了利用import导入,也可以自己实现,请看这里from pythonds.basic import Stackdef divideBy2(decNumber): remstack = Stack() while decNumber > 0: rem = decNumber % 2...翻译 2019-06-12 09:35:39 · 557 阅读 · 0 评论