2022年1月6日
摘要:
一、二叉树的遍历 在计算机程序中,遍历本身是一个线性操作,而二叉树是典型的非线性数据结构,遍历时需要把非线性关联的节点转化成一个线性的序列。以不同的方式遍历,遍历出来的序列顺序也不同。 从节点之间位置关系的角度来看,二叉树的遍历分为4种。 前序遍历 中序遍历 后序遍历 层序遍历 从更宏观的角度来看,
阅读全文
posted @ 2022-01-06 21:59
Sakaispring
阅读(53)
推荐(0)
2022年1月5日
摘要:
一、树 树的定义是: 树(tree)是n(n ≥0)个节点的有限集。当n =0时,称为空树。在任意一个非空树中,有如下特点。 1.有且仅有一个特定的称为根的节点。 2.当n >1时,其余节点可分为m (m >0)个互不相交的有限集,每一个集合本身又是一个树,并称为根的子树。 如上图,节点1是根节点(
阅读全文
posted @ 2022-01-05 20:39
Sakaispring
阅读(63)
推荐(0)
2021年12月30日
摘要:
一、哈希表 哈希表(hash table)也叫作散列表,这种数据结构提供了键(Key)和值(Value)的映射关系。只要给出一个Key,就可以高校查找到它所匹配的Value,时间复杂度接近于O(1)。 二、哈希函数 哈希表在本质上是一个数组,可以通过某种方式,把Key和数组下标进行转换。这个方式就叫
阅读全文
posted @ 2021-12-30 21:44
Sakaispring
阅读(75)
推荐(0)
2021年12月24日
摘要:
一、物理结构和逻辑结构 物理结构是内存中实实在在的存储结构,就相当于人的血肉和骨骼。 逻辑结构是抽象的概念,依赖于物理结构而存在,就好比人的精神。 栈和队列都属于逻辑结构,它们的物理实现既可以利用数组,也可以利用链表来完成。 二、栈 1.栈的定义 栈(stack)是一种线性数据结构,它就像一个放乒乓
阅读全文
posted @ 2021-12-24 19:19
Sakaispring
阅读(74)
推荐(0)
2021年12月11日
摘要:
一、链表 1. 单向链表 链表(linked list)是一种在物理上非连续、非顺序的数据机构,由若干节点(node)所组成。 单向 链表的每一个节点又包含两部分,一部分是存放数据的变量data, 另一部分是指向下一个节点的指针next。 # 单向链表初始化 class Node: def __in
阅读全文
posted @ 2021-12-11 21:21
Sakaispring
阅读(64)
推荐(0)
2021年12月10日
摘要:
一、数组 1. 数组的概念 数组(array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量称为元素。 数组的存储形式如图: 数组的两个特点: 数组中的每一个元素也都有着自己的下标,下标从0开始,一直到数组长度-1; 在内存中顺序存储 ,因此可以很好地实现逻辑上的顺序表 。 2. 数组的
阅读全文
posted @ 2021-12-10 20:54
Sakaispring
阅读(46)
推荐(0)
2021年12月9日
摘要:
一、数据结构的组成方式 算法的本质是一系列程序指令,用于解决特定的运算和逻辑问题。数据结构是数据的组织、管理和存储格式,其使用目的是高效地访问和修改数据。 1.线性结构 线性结构是最简单的数据结构,包括数组、链表,以及由它们衍生出来的栈、队列、哈希表。 2.树 树是相对复杂的数据结构,其中比较有代表
阅读全文
posted @ 2021-12-09 20:34
Sakaispring
阅读(108)
推荐(0)