ds&algo
一suo烟雨任平生
这个作者很懒,什么都没留下…
展开
-
数据结构与算法笔记(12) - 二叉树的概念和性质
二叉树二叉树是结点的有穷集合。这个集合或者为空,或者其中有一个称为根结点的特殊结点,其余结点分属两个互不相交的二叉树,这两棵子树分别是原二叉树的左子树和右子树。特征二叉树中的每个结点至多有两个子结点结点关联的后继结点明确的分为左结点和右结点二叉树的性质二叉树最重要的性质就是树的高度和树中可以容纳的最大结点个数之间的关系。在非空二叉树第 i 层最多有 2i 个结点(i >=...原创 2019-12-23 23:00:26 · 242 阅读 · 0 评论 -
数据结构与算法笔记(11) - 树的基本概念
定义树结构是由结点和结点之间的连接关系(后继关系)构成的一种层次结构。基本术语空树: 不包含任何结点的树单点树: 只包含一个结点的树树根: 树形结构的起始点,也叫其余结点的祖先结点父结点: 一个树的根结点称为子树根结点的父结点子节点: 一棵树的子树根结点称为树根结点的子节点边: 父结点到子结点的连线父子关系: 父结点到子结点的单向关系祖先/子孙关系: 祖先结点和子孙结点间的传...原创 2019-12-23 21:54:36 · 381 阅读 · 0 评论 -
数据结构与算法笔记(10) - 表达式
概述本文所讨论的表达式指的是数学表达式。在数学表达式中,最常见的结构是由一组二元运算符和运算对象构成,通常,二元运算符写在运算对象中间,这样的形式成为中缀表达式。将运算符写在运算对象前面称为前缀表达式,将运算符写在运算对象的后面称为后缀表达式。本文对表达式的讨论是假设运算符为二元运算符。中缀表达式中缀表达式是日常最习惯的一种表达式,但是作为表达式的表示方式,它很难统一的贯彻,对于一元和多元...原创 2019-12-23 05:00:53 · 338 阅读 · 0 评论 -
数据结构与算法笔记(6) - 循环双链表
双链表也可以定义为循环链表,让表尾结点的 next 指向表的首节点,让表首节点的 prev 指向表的尾结点。节点类:class Node(object): def __init__(self, elem, next_=None, prev=None): self.elem = elem self.next = next_ self.pre...原创 2019-08-03 16:00:14 · 97 阅读 · 0 评论 -
数据结构与算法笔记(3) - 线性表之链表
用链接关系显示表示元素之间的顺序关系称为链接技术,基于链接技术实现的线性表称为链接表或者链表,链表主要由节点和连接关系组成。链表的实现主要有以下几种:单向链表单向循环链表双向链表双向循环链表1. 单向链表单向链表的节点是一个二元组,元素域保存数据,指针域指向下一个节点。单向链表需要一个变量指向首节点,尾结点需要指向空。定义一个节点:class Node(object): ...原创 2019-07-28 08:42:57 · 106 阅读 · 0 评论 -
数据结构与算法笔记(8) -栈
栈是一种简单的缓冲存储结构,它只支持数据项的存储和访问,不支持数据项之间的任何关系。栈具有后进先出的特性。栈的实现:基于栈的特性,实现一个栈可以基于两种结构,线性表和列表1. 异常类class StackUnderflow(ValueError): pass2. 基于线性表实现栈class Stack(object): def __init__(self): ...原创 2019-08-13 06:43:28 · 177 阅读 · 0 评论