数据结构与算法
数据结构和一些算法思想
InceptionZ
这个作者很懒,什么都没留下…
展开
-
树的前、中、后续遍历(附Python代码)
树的前、中、后续遍历都属于深度优先的范畴,是树遍历的一大类方式,还有一类是广度优先.1. 理论部分2. 代码部分2.1 前序遍历def preorderTraversal(root, result=[]): if root == None: return result result.append(root.data) # 根 preorderTraversal(root.left, result) # 左子树 preorderTraversal(原创 2020-12-08 10:36:30 · 187 阅读 · 0 评论 -
递归与分治
1. 递归“如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解”——Stack Overflow编写递归函数时,必须告诉它何时停止递归。基线条件,达到这个条件时,函数不再调用自己,从而避免无线循环(通常是个if语句)递归条件,递归函数调用自己注意:递归使用到了栈结构,所以递归所占的内存开销很大2. 分治(Divide & Conquer)2.1 分治的思想它采用了分而治之的思想,使用了递归的方法去实现分而治之。换句话说你可以将分治理解为递归的一个应用。使原创 2020-11-30 20:36:49 · 113 阅读 · 1 评论 -
数据结构——链表
如何用python去定义列表 -*- coding:utf-8 -*-class ListNode: def __init__(self, x): self.val = x self.next = Nonedef print_Node(node): while node: print(node.val) node = node.nextnode1 = ListNode(1)node2 = ListNode(2)node3 = ListN..原创 2020-06-14 22:01:20 · 82 阅读 · 0 评论 -
广度优先搜索详解(附上python代码)
写在前面本博客深度讲解广度优先遍历及其代码实现1. 广度优先搜索是关于图数据结构的一种算法,它可以回答两个问题:①从节点A出发,有前往结点B的路径么?②从节点A出发,前往结点B的哪条路径最短?2. 预备概念一度关系:A——>B二度关系:A——>B——>C,A与C为二度关系我们搜索最短路径是按照一度关系优于二度关系以此类推,找到最短路径的。广度有限搜索需要一个队列来存储每次访问结点的信息3. 举个简单例子现在假设我们要寻找结点A到结点G的最短路径,考虑下面原创 2020-06-08 23:04:18 · 5373 阅读 · 4 评论 -
python——二叉树的前、中、后序遍历
1. 先验知识2. 如何创建一棵二叉树class BinaryTree: def __init__(self, data): self.data = data self.left = None self.right = None def get(self): return self.data def getLeft(self): return self.left def getRig原创 2020-06-01 21:58:55 · 131 阅读 · 0 评论 -
快速排序详解并附上python代码(8行实现)
写在前面本博客主要从快排的思想,时间复杂度分析和实现三方面来写。1. 快速排序的思想快速排序基于分而治之(D&C,divide and conquer)的思想,顾名思义,就是分开“治它”。也是一种递归思想1.2 回归递归思想递归需要两个东西,一个是基线条件(递归出口),一个递归条件(何时调用自己)1.3 快速排序的步骤(1) 选择一个基准值pivot(2)将数组分成两个数组:小于基准值的子数组和大于基准值的子数组(3)对这两个数组进行快速排序(4)判断当前是否为基准条原创 2020-05-30 21:09:01 · 233 阅读 · 0 评论 -
数据结构之哈希表/散列表——python应用(字典)
1. 什么是哈希表?散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为: Hash(key)=Addr哈希表:是根据关键字而直接进行访问值的数据结构。也就是说散列表建立了关键字和存储地址之间的一种直接映射关系。2. 哈希表为何如此高效?回顾已经学过的数据结构的查找,例如数组,链表等,他们的查找都是建立在“比较”的基础上的,时间复杂度通常为O(n)而哈希表直接通过给定Key值,获取到地址,从该地址中取出数据,理想情况下时间复杂度只有O(1),即与表中元素个数无关。3. 散原创 2020-05-24 21:15:19 · 1327 阅读 · 0 评论