![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
蜘蛛侠不会飞
关注公众号【不至于编程】,回复【CS】获取30本豆瓣高分计算机就书籍,包括操作系统、计算机网络、数据结构与算法等
展开
-
根据二叉树层序遍历顺序(数组),将其转换为二叉树(Python)
1.创建二叉树结点和值class Node: def __init__(self, value): self.value = value self.left = None self.right = None2.构造二叉树alist = [1, 2, 3, 4, 5, 6, 7, 8, 9]def creatTree(ali...原创 2019-08-22 10:48:37 · 3510 阅读 · 0 评论 -
Python数据结构与算法-二叉树
1、树的概念:树(Tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点; 除了...原创 2018-09-08 18:03:59 · 370 阅读 · 0 评论 -
Python数据结构与算法-常见的九种排序算法以及二分查找法
目录1、冒泡排序法2、选择排序法3、插入排序法4、快速排序法5、希尔排序法6、归并排序法7、堆排序法8、桶排序9、基数排序常见的算法效率比较:八、二分查找法:1、冒泡排序法冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后...原创 2018-09-06 21:26:17 · 476 阅读 · 0 评论 -
Python数据结构与算法-队列和双端队列
1.普通队列:队列的实现:队列是先进先出的;相对于栈,栈是先进后出的#coding=gbk#队列的实现:队列是先进先出的#Queue() 创建一个空的队列# enqueue(item) 往队列中添加一个item元素# dequeue() 从队列头部删除一个元素# is_empty() 判断一个队列是否为空# size() 返回队列的大小class Queue(): ...原创 2018-09-06 11:36:56 · 292 阅读 · 0 评论 -
Python数据结构与算法-线性表(链表)
1.单向链表:(10/31增加根据索引删除结点,删除头结点额尾部结点)#1.单向链表:class SingleNode(): def __init__(self, item): '''单向链表的结点实现''' self.item = item # item 存放数据 self.next = None #单链表的操作: 增删改查# ...原创 2018-09-04 22:37:28 · 352 阅读 · 0 评论 -
Pyhton数据结构与算法-线性表(顺序表)
算法的五大特性输入: 算法具有0个或多个输入 输出: 算法至少有1个或多个输出 有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成 确定性:算法中的每一步都有确定的含义,不会出现二义性 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成import time start = time.clock()for a in...原创 2018-09-04 22:11:25 · 326 阅读 · 0 评论 -
Python数据结构与算法-栈和递归函数
1.栈#coding=gbk#栈的常用操作# Stack() 建立一个空的栈对象# push() 把一个元素添加到栈的最顶层# pop() 删除栈最顶层的元素,并返回这个元素# peek() 返回最顶层的元素,并不删除它# isEmpty() 判断栈是否为空# size() 返回栈中元素的个数#使用Python中的列表进行对栈的实...原创 2018-06-27 21:58:49 · 472 阅读 · 0 评论 -
玩转图论算法(5)图的广度优先遍历【Java实现】
5-1 图的广度优先思想广度优先搜索(BFS,Breadth First Search)是一个分层的搜索过程,没有回退过程,是非递归的。BFS 算法的思想是:对一个无向连通图,在访问图中某一起始顶点 v 后,由 v 出发,依次访问 v 的所有未访问过的邻接顶点 w1, w2, w3, …wt;然后再顺序访问 w1, w2, w3, …wt的所有还未访问过的...原创 2020-05-04 17:16:30 · 326 阅读 · 0 评论 -
玩转图论算法(4)图的深度优先遍历(检测无向图的环)【Java实现】
5-1 从树的广度优先遍历,到图的广度优先遍历5-2 图的 BFS 的实现5-3 使用 BFS 求解路径问题5-4 更多关于使用 BFS 求解路径问题5-5 使用 BFS 求解联通分量问题5-6 使用 BFS 求解环检测问题5-7 使用 BFS 求解二分图检测问题5-8 BFS 的重要性质5-9 无权图的最短路径5-10 BFS 和 DFS 的神奇联系,与本章小结...原创 2020-05-02 18:09:36 · 1828 阅读 · 0 评论 -
玩转图论算法(3)图的深度优先遍历的应用-单源路径【Java实现】
3-1 无向图的连通分量的个数3-2 DFS中的一个技巧3-3 求解联通分量3-4 单源路径问题3-5 单源路径问题的编程实现3-6 单源路径问题的一个小优化3-7 所有点对路径问题3-8 提前结束递归:路径问题的另一个优化3-9 无向图的环检测3-10 二分图检测3-11 实现二分图检测。。。。。。。。。。。。。end。。。。。。...原创 2020-04-24 17:35:36 · 365 阅读 · 0 评论 -
玩转图论算法(2)图的深度优先遍历【Java实现】
3-1 图的两种形式遍历所谓图的遍历(graph traversal),也称为搜索(search),就是从图中某个顶点出发,沿着一些边访遍图中所有的顶点,且使每个顶点仅被访问一次。遍历可以采取两种方法进行:深度优先搜索(DFS,depth first search)和广度优先搜索(BFS,breadth first search)。3-2 图的深度优先...原创 2020-04-24 16:54:14 · 718 阅读 · 0 评论 -
玩转图论算法(1)图的基本表示【Java实现】
本系列分为 6 个文章,为学习基础的图论算法。原创 2020-04-14 20:46:04 · 1024 阅读 · 1 评论 -
啥是二叉搜索树、B树、B+树、AVL树、红黑树,怎么那么多的树,一文全总结
目录1. 二叉搜索树1)概念2)特点3)二叉搜索树存在的局限2. B树1)概念2)特点3)B树查询流程3.B+树1)概念2)特点3)B+树与B树对比4. AVL树(平衡二叉树)1)概念2)AVL保持平衡的四种操作3)AVL存在的局限性5. 红黑树1)概念2)特征3)红黑树的自平衡操作6.二叉搜索树、B树、B+树、AVL树、红黑树的常见面试题1)为什么设计红黑树2)B树的作用3)B树和 B+树的区别4)...原创 2020-09-16 14:23:49 · 1904 阅读 · 0 评论 -
java数据结构(2)二叉树插入
简单二叉树定义:一个节点下面最多拥有两个子节点,并且两个子节点分为左值和右值,左值比父节点要小,右值比父节点要大,下面,我们来利用java实现一棵如下图中的二叉树:大家可以根据我的描述分析一下这棵二叉树下面就来写代码实现这棵二叉树:首先是要建立一个节点类Node:package Tree;/** * 节点类 * @author javadaodechengxuyuan * */pub...转载 2018-03-05 14:22:31 · 2034 阅读 · 0 评论