![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
常用数据结构和算法总结!
alpha-α
一将功成万骨枯!
展开
-
N皇后问题的python实现总结
# 判断该位置的列、主对角线、次对角线是否满足要求 def could_place(row,col): return not (cols[col] + hill_diagonals[row - col] + dale_diagonals[row + col]) # 放置皇后,并将皇后所处的列、主对角线、次对角线置1 def place_queen(row,col): queens.add((...原创 2020-08-11 11:13:18 · 1025 阅读 · 0 评论 -
二叉树前序遍历、中序遍历、后序遍历的递归、迭代方法的python实现
目录一、概念二、前序遍历代码实现三、中序遍历代码实现四、后序遍历代码实现一、概念前序遍历:先访问根节点,再访问左子节点,最后访问右子节点中序遍历:先访问左子节点,再访问根节点,最后访问右子节点后序遍历:先访问左子节点,再访问右子节点,最后访问根节点class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None原创 2020-08-02 10:58:14 · 402 阅读 · 0 评论 -
平衡二叉树、B-Tree、B+、B*介绍
https://zhuanlan.zhihu.com/p/27700617https://my.oschina.net/u/4116286/blog/3107389原创 2020-07-31 17:06:41 · 129 阅读 · 0 评论 -
平衡二叉树的创建、遍历以及节点的删除
一、概念平衡二叉树(AVL):是一种结构平衡的二叉搜索树,即叶节点高度差的绝对值不超过1,并且左右两棵子树都是一棵平衡二叉树。它能在O(log n)内完成插入、查找和删除操作,其高度h>logN (N为节点个数)。二、创建AVL步骤:在二叉搜索树中:1、如果某节点的左子树高度-右子树高度>1, (1)如果当前节点的左子树的右子树的高度大于当前节点左子树的左子树的高度,则先对当前节点的左子节点进行左旋转 再对当前节点进行右旋转; 否则,...原创 2020-07-31 16:19:41 · 314 阅读 · 0 评论 -
二叉搜索树的创建和节点的删除
二叉排序树删除节点的三种情况:一、删除叶子节点1、首先要先找到要删除的目标节点targetNode2、找到targetNode的父节点parent3、确定targetNode是parent的左子节点还是右子节点4、若是左子节点则parent.left = None 若是右子节点则parent.right = None二、删除只有一棵子树的节点1、首先要先找到要删除的目标节点targetNode2、找到targetNode的父节点parent3、确定targetNode的子节点是左原创 2020-07-23 18:30:30 · 138 阅读 · 0 评论