
数据结构与算法
lxyh0000
世界很杂
展开
-
二分查找的递归与非递归实现(python)
二分查找二分查找又称折半查找,优点是比较次数小,查找速度快,平均性能好;缺点就是要求待查表为有序表,且插入删除困难,因此折半查找适用于不经常变动而查找频繁的有序列表递归实现def binary_search(l, item): """递归的二分查找""" if len(l) == 0: return False mid = len(l)//2 if原创 2018-12-14 16:46:16 · 482 阅读 · 1 评论 -
树的基础概念
树的概念树是一种抽象数据类型或是这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合,它具有以下特点:每个节点有零个或多个子节点没有父节点的节点称为根节点每个非根节点有且只有一个父节点除了根节点外,每个子节点可以分为多个不相交的子树树的术语节点的度:一个节点含有的子树的个数称为该节点的度树的度:一棵树中,最大的节点的度称为树的度叶节点或终端节点:度为零...原创 2018-12-14 17:17:11 · 188 阅读 · 0 评论 -
二叉树的介绍与实现(python)
二叉树的概念二叉树是每个节点最多有两个子树的树结构,通常称为左子树与右子树二叉树又分为以下类别:完全二叉树:对于一颗二叉树,假设其深度为d(d>1),除了第d层外,其他各层的节点数目均达最大值,且第d层所有节点从左到右连续的紧密排列,这样的二叉树被称为完全二叉树满二叉树:所有叶节点都在最底层的完全二叉树平衡二叉树:当且仅当任何节点的两颗子树的高度差不大于1的二叉树排序二叉树(二...原创 2018-12-14 20:35:16 · 152 阅读 · 0 评论 -
二叉树遍历的介绍与实现(python)
介绍树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现广度优先遍历从树的root开始,从上到下从从左到右遍历整个树的节点def breadth_travel(self): """利用队列实现树的层次遍历""" if root == None: ...原创 2018-12-14 20:46:43 · 163 阅读 · 0 评论 -
链表的实现(python)
单向链表结构特征:节点由数据域和向后引用域组成尾部节点的引用域指向Noneclass Node(object): """单链表的节点""" def __init__(self, item): # item存放数据元素 self.item = item # next是下一个节点的标识 self.nex原创 2018-12-11 18:32:28 · 174 阅读 · 0 评论 -
栈与队列的实现(python)
栈(先进后出)使用python内置的list来实现栈class Stack(object): """栈""" def __init__(self): self.items = [] def is_empty(self): """判断是否为空"&原创 2018-12-11 19:01:07 · 153 阅读 · 0 评论 -
顺序表的实现(python)
利用python内置的list来实现顺序表class SequenceList(object): """顺序表""" def __init__(self, size=6): # 初始化顺序表 self.max = size self.num = 0 # 提前构建一个固定大小的列表 self.data = [Non原创 2018-12-11 20:29:17 · 2862 阅读 · 1 评论