![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构,python
Haohao+++
大学本科在读的喜欢研究的程序猿
展开
-
python实现根据前序序列和中序序列求二叉树的后序序列
根据前序序列求根结点,根据中序序列求左右子树。如上图:根据前序序列,谁在前面谁就是根结点;根据根结点,确定左右子树。class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None self.rchild = Noneclass SolvedPostOrder: def __init__(self, pre_order, in_order)原创 2022-02-25 20:53:51 · 1403 阅读 · 0 评论 -
python实现二叉树的创建、前序遍历、中序遍历以及层次遍历
二叉树的概念二叉树是指度不超过2的树,可以由n个结点构成,如下图。二叉树的创建注意:输入的格式,如下图,D结点的孩子结点,空结点用#代替,直到最后一层就可以停止输入,以下面这棵树为例,则我们的输入为 ABCDE#F##G#####class CreateBiTree: """ str_tree: 传入字符串 return: 返回根结点 """ def __init__(self, str_tree): self.str_tree = s原创 2022-02-25 16:07:41 · 6033 阅读 · 1 评论 -
python内置队列模块
from collections import deque"""先进先出"""q = deque([1,2,3,4], 5) # 第一个参数是队列的元素,第二个参数是队列的元素个数的最大值q.append(5) # 队尾进队print(q.popleft()) # 队首进队print(q.popleft())# 用于双向队列qq = deque([1,2,3]) qq.appendleft(4) # 队首进队qq.appendleft(5) print(qq.pop())原创 2022-02-21 19:19:11 · 158 阅读 · 0 评论 -
二分查找——python实现
def binary_seach(data, target, low, high): if low > high: return False else: mid = (low + high) // 2 if target == data[mid]: return True elif target < data[mid]: return binary_seach(dat原创 2022-02-21 19:16:23 · 272 阅读 · 2 评论 -
欧几里得算法——最大公约数——python实现
def gcd2(a, b): while b > 0: r = a % b a = b b = r return aprint(gcd2(60, 21))原创 2022-02-21 19:14:27 · 785 阅读 · 0 评论 -
数据结构——栈——python实现
栈介绍栈就相当于一个容器,不过它遵循一个规则,就是先进后出。如上图,[1, 2, 3],1先进去,依次是2、3。要取出元素,就要先取3,依次是2、1。用python实现,且运用在括号匹配中。class Stack: """ 先进后出 """ def __init__(self): self.stack = [] def push(self, element): self.stack.append(element)原创 2022-02-21 19:08:42 · 485 阅读 · 0 评论