Skip to main content

标签: 算法

Python 入门基础知识 - 数据结构与算法 - 排序

排序排序相对于查找来说要复杂的多,排序的方法也较多,有冒泡排序、希尔排序、二叉树排序和快速排序等,其中二叉树排序是比较有意思的一种排序方法,而且也便于操作。二叉树排序的过程主要是二叉树的建立和遍历的过程。例如有一组数据"3,5,7,20,44,2,15,30",则二叉树的建立过程如下1、首先将第一个数据3放如根节点2、将数据5与节点中的数据3比较,由于5大于3,则将5放入3的右子树中3、将数据7与根节点中的数据3比较,由于7大于3,则将7放入3的右子树中,由于2已经有右子树5,将7与5比较,因为7大...[…]

Read More

Python 入门基础知识 - 数据结构与算法 - 图

图图也是非线性的数据结构,是由顶点和边组成的。如果图中的顶点是有序的,那么图是有方向的,称之为有向图,如下图否则,图是无方向的,称之为无向图。在图中,由顶点组成的序列称为路径。图和树相比,少了树明显的层次结构。在Python中可以采用字典的方式来创建图,图中的每个元素是字典中的键,该元素所指向的图中其他元素则组成键的值。同树一样,对于图来说也可以对其进行遍历。除了遍历外,可以在图中搜索所有的从一个顶点到另一个定点的路径。图中的顶点可以看做是城市,路径可以看做是城市到城市之间的公路。因此,通过搜索所有...[…]

Read More

Python 入门基础知识 - 数据结构与算法 - 二叉树遍历

二叉树遍历按照先左后右,树的遍历方法有3种:先序遍历、中序遍历、后序遍历。其中,先序遍历的次序是:如果二叉树不为空,则访问根节点,然后访问左子树,最后访问右子树;否则,程序退出。中序遍历的次序是:如果二叉树不为空,则先访问左子树,然后范文根节点,最后访问右子树;否则,程序退出。后序遍历的次序依次是:如果二叉树不为空,则先访问左子树,然后访问右子树,最后访问根节点。代码实例演示如下# _*_ coding: utf-8 -*- # version 2.7.13 class BTree: #...[…]

Read More

Python 入门基础知识 - 数据结构与算法 - 二叉树

二叉树二叉树是一类比较特殊的数,在二叉树中每个节点最多只有两个儿子,分为左和右,如下图相对于树而言,二叉树的构建和使用都要简单的多,而且任何一棵树,都可以通过变换转换成一颗二叉树。在Python中,二叉树的构建和树一样,可以使用列表或者类的方式。由于二叉树中的节点具有确定的儿子数,因此,使用类的方式要更为简便。代理实例演示如下# _*_ coding: utf-8 -*- # version 2.7.13 class BTree: # 二叉树节点 def __init__(self,...[…]

Read More

Python 入门基础知识 - 数据结构与算法 - 树

树和图树和前几篇文章说的数据结构不同,树不是线性的。在处理较多数据的时候,使用线性结构较慢,而使用树结构则可以提高处理速度。不过树的构建相对于线性的表、堆栈和队列等较为复杂。树树是一种非线性的数据结构,如下图之所以称为树,是因为其形状像一颗倒置的大树。每颗树都有一个跟节点,如上图所示,Root为根节点。A、B、C为Root的儿子,Root为A、B、C的父亲,A、B、C为兄弟。同样A为D、E的父亲,D、E为A的儿子,D、E为兄弟。D、E为Root的孙子,Root为D、E的祖父。在树中,如果一个元素没有...[…]

Read More

Python 入门基础知识 - 数据结构与算法 - 队列

队列队列和栈类似,如下图但不同的是,队列的出队操作是队首元素进行的删除操作,因而对于队列而言,先入队的元素将先出队。因此队的特性可以称为先进先出(FIFO)。和堆栈类似,在Python中同样可以使用列表来构建一个队列,并完成对队列的操作。如下实例# _*_ coding: utf-8 -*- # version 2.7.13 class TestQueue: def __init__(self, size=20): # 创建队列 self.queue = [] # 队列 self.size =...[…]

Read More