摘要: 表达式树和查找树的 Python 实现 目录 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不过在遇到运算符时不是进行计算,而是将树节点赋值为运算符,并将节点的左右叶子指向两个变量构成一个基本的二叉树后再压入栈中。 下面 阅读全文
posted @ 2018-01-14 23:36 StackLike 阅读(3247) 评论(0) 推荐(0) 编辑
摘要: 二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点。 对于二叉树的遍历,主要有以下三种基本遍历方式: 下面将用代码构建一个二叉树,并实现三种遍历方式, 完整代码 1 class TreeNode: 2 def __init__(self, val=N 阅读全文
posted @ 2018-01-14 22:41 StackLike 阅读(1384) 评论(0) 推荐(1) 编辑
摘要: 队列 / Queue 数组队列 数组队列是队列基于数组的一种实现,其实现类似于数组栈,是一种FIFO的线性数据结构。 下面将使用Python中的list来替代C语言中的数组实现数组队列的数据结构。 Note: 这里的实现并没有像C语言中的申请一块固定大小的数组,手动的定制数组中队列的头尾位置,而是利 阅读全文
posted @ 2018-01-14 22:21 StackLike 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 中缀表达式与后缀表达式的转换和计算 目录 1 中缀表达式转换为后缀表达式 中缀表达式转换为后缀表达式的实现方式为: 代码实现过程如下, 完整代码 1 from linked_list_stack import Stack 2 3 SIGN = {'+': 1, '-': 1, '*': 2, '/' 阅读全文
posted @ 2018-01-14 22:13 StackLike 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 栈 / Stack 目录 栈是一种基本的线性数据结构(先入后出FILO),在 C 语言中有链表和数组两种实现方式,下面用 Python 对这两种栈进行实现。 1 链表栈 链表栈是以单链表为基础实现的栈数据结构,主要有以下几个关键点: 完整代码 1 class StackEmptyException( 阅读全文
posted @ 2018-01-14 21:58 StackLike 阅读(1399) 评论(0) 推荐(0) 编辑
摘要: 链表有环与链表相交判断的 Python 实现 目录 1 有环链表 判断链表是否有环可以参考链接, 有环链表主要包括以下几个问题(C语言描述): 下面为关于有环链表几个问题的具体实现代码, 完整代码 1 from linked_list import LinkedList 2 3 4 def chec 阅读全文
posted @ 2018-01-14 19:49 StackLike 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 双链表 / Doubly Linked List 目录 1 双链表 双链表和单链表的不同之处在于,双链表需要多增加一个域(C语言),即在Python中需要多增加一个属性,用于存储指向前一个结点的信息。 完整代码 1 from linked_list import LinkedList, test 2 阅读全文
posted @ 2018-01-14 19:33 StackLike 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 单链表 / Linked List 目录 链表是一种基本的线性数据结构,在C语言中,这种数据结构通过指针实现,由于存储空间不要求连续性,因此插入和删除操作将变得十分快速。下面将利用Python来完成单链表的实现。 1 单链表 不带表头的单链表通常形式如下, 完整代码 1 class Node: 2 阅读全文
posted @ 2018-01-14 19:13 StackLike 阅读(1203) 评论(0) 推荐(0) 编辑