![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构及算法
数据结构及算法
菜鸡小豆子
这个作者很懒,什么都没留下…
展开
-
排序算法不会???来用Python学,贼简单
冒泡排序 冒泡冒泡,是将石头丢下去,才会有个泡泡冒起来,顾名思义,我们创建一个for循环,从后往前遍历,这样就实现了每次遍历都会剔除掉最后一个元素的操作,这恰好是我们所需要的(因为冒泡排序的内循环就是将最大元素移动到最后的位置) 在内循环中,我们从头开始遍历,每一次都会比较当前点和下一个点比较,满足条件就交换,一直循环下去,这样就会在一轮循环中将一个最大的元素移动到最后,此时我们执行外循环,进行新一轮的大元素的后移操作。 # -*- conding:UTF-8 -*- def bubble_sort..原创 2020-05-20 07:50:06 · 156 阅读 · 0 评论 -
Python实现数据结构之图实现(5)
图的实现方法 简易图结构 邻接矩阵(无向图) 邻接列表(有向图) 源码 邻接矩阵实现方法# -*- coding:utf-8 -*- class Graph(): '''实现图''' def __init__(self): self.start = [] self.wight = [None] self.count_vertex = 0 def add_vertex(self,key): '''添加顶点'原创 2020-05-16 16:24:05 · 719 阅读 · 0 评论 -
Python实现数据结构之堆实现(4)
堆的实现 堆满足的条件 必须是完全二叉树 各个父节点必须大于或者小于左右节点,其中最顶层的根结点必须是最大或者最小的 实现方式及条件 使用数组实现二叉堆,例如下图的最大堆,在数组中使用[0,100,90,85,80,30,60,50,55]存储,注意上述第一个元素0仅仅是做占位; 设节点位置为x,则左节点位置为2x,右节点在2x+1;已知叶子节点x,根节点为x//2; 举例说明: 100为根节点(位置为1),则左节点位置为2,即90,右节点位置为3,即85; 30为子节点(位置为5),原创 2020-05-14 14:44:39 · 182 阅读 · 0 评论 -
Python实现数据结构之二叉树(3)
定义及相关术语 定义- 子树不相交; - 抛开根节点,每个节点有且仅有一个父节点; - 一棵N个节点的树有N-1条边。 相关术语- 节点的度:一个节点含有的子树的个数称为该节点的度; - 树的度:一颗树中,最大的节点的度称为树的度; - 叶节点或终端节点:度为零的节点; - 父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; - 子节点:一个节点含有的子树的根节点称为该节点的子节点; - 兄弟节点:具有相同父节点的节点互相称为兄弟节点; - 节点的层次:从根节点开始定义起,根为第一层,.原创 2020-05-12 07:10:45 · 235 阅读 · 0 评论 -
Python实现数据结构之栈和队列(2)
首先上队列的代码 class Queue(): '''队列''' def __init__(self): self.__list = [] def enqueue(self, item): '''在队列中添加元素''' self.__list.append(item) def dequeue(self):...原创 2020-04-19 12:47:53 · 133 阅读 · 0 评论 -
Python实现数据结构之链表(1)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...转载 2020-04-12 10:02:45 · 199 阅读 · 0 评论