![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 69
北四金城武
这个作者很懒,什么都没留下…
展开
-
数据结构十【二叉树】
二叉树1. 基本概念2. 二叉树的性质(特性)2.1 完全二叉树和满二叉树3. 二叉树代码实现3.1定义二叉树节点3.2 树的创建3.3 二叉树的遍历3.3.1 广度优先遍历3.3.2 深度优先遍历3.3.2.1 先序遍历3.3.2.2 中序遍历3.3.2.3 后序遍历3.3.2.4 测试1. 基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)2. 二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(原创 2021-11-07 00:11:10 · 62 阅读 · 0 评论 -
数据结构九【树】
树1. 树的概念2. 树的术语3. 树的种类4. 树的存储与表示5. 常见的一些树的应用场景1. 树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(1)每个节点有零个或多个子节点;(2)没有父节点的节点称为根节点;(3)每一个非根节点有且只有一个父节点;(4)除原创 2021-11-06 23:52:31 · 77 阅读 · 0 评论 -
数据结构八【双端队列】
双端队列1. 双端队列的实现2. 双端队列的操作3. 双端队列的实现代码1. 双端队列的实现双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。2. 双端队列的操作(1)Deque() 创建一个空的双端队列(2)add_front(item) 从队头加入一个item元素(3)add_rear(item) 从队尾加入一个item元素(4)原创 2021-11-02 22:56:43 · 185 阅读 · 0 评论 -
数据结构七【队列】
队列1. 队列的实现2. 队列的操作3. 队列的实现代码1. 队列的实现同栈一样,队列也可以用顺序表或者链表实现。2. 队列的操作(1)Queue() 创建一个空的队列(2)enqueue(item) 往队列中添加一个item元素(3)dequeue() 从队列头部删除一个元素(4)is_empty() 判断一个队列是否为空(5)size() 返回队列的大小3. 队列的实现代码class Queue(object): """队列""" def __init__(self)原创 2021-11-02 22:52:49 · 49 阅读 · 0 评论 -
数据结构六【栈】
栈1. 栈结构实现2. 栈的操作3. 栈的实现代码1. 栈结构实现栈可以用顺序表实现,也可以用链表实现。2. 栈的操作(1)Stack() 创建一个新的空栈(2)push(item) 添加一个新的元素item到栈顶(3)pop() 弹出栈顶元素(4)peek() 返回栈顶元素(5)is_empty() 判断栈是否为空(6)size() 返回栈的元素个数3. 栈的实现代码class Stack(object): """栈""" def __init__(self):原创 2021-11-02 22:49:31 · 48 阅读 · 0 评论 -
数据结构五【单向循环链表】
单向循环链表1. 单向循环链表2. 操作3.代码实现1. 单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。2. 操作(1)is_empty() 判断链表是否为空(2)length() 返回链表的长度(3)travel() 遍历(4)add(item) 在头部添加一个节点(5)append(item) 在尾部添加一个节点(6)insert(pos, item) 在指定位置pos添加节点(7)remove(item) 删除一个原创 2021-11-02 21:32:41 · 52 阅读 · 0 评论 -
数据结构四【双向链表】
双向链表1. 概念2. 双向链表基本操作3.双向链表的实现1. 概念一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。2. 双向链表基本操作(1)is_empty() 链表是否为空(2)length() 链表长度(3)travel() 遍历链表(4)add(item) 链表头部添加(5)append(item) 链表尾部添加(6)insert(pos, ite原创 2021-11-01 23:36:23 · 43 阅读 · 0 评论 -
数据结构三【单链表】
单链表1.链表1.1 链表的定义2. 单向链表2.1 节点的实现2.2 单链表的操作2.3 单链表的实现2.4 链表与顺序表的对比1.链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。1.1 链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)原创 2021-11-01 23:28:46 · 94 阅读 · 0 评论 -
数据结构二【顺序表】
顺序表1.数据结构相关概念1.1数据结构1.2含义1.3 算法与数据结构的区别1.4 抽象数据类型(Abstract Data Type)2.顺序表2.1 顺序表的基本形式2.2 顺序表的结构与实现2.2.1 顺序表的结构2.2.2 顺序表的两种基本实现方式2.2.3 元素存储区替换2.2.42.3 顺序表的操作2.3.1 增加元素2.3.2 删除元素3. Python中的顺序表3.1 list的基本实现技术1.数据结构相关概念1.1数据结构举例:如何用Python中的类型来保存一个班的学生信息? 如原创 2021-10-31 23:21:01 · 76 阅读 · 0 评论 -
数据结构一【基本概念】
基本概念1.算法的概念2.算法的五大特性3.算法简单举例4.算法效率的衡量4.1 执行时间反应算法效率4.2单靠时间值并不绝对可信4.3时间复杂度与“大O记法”4.4理解“大O记法”4.5最坏时间复杂度4.6时间复杂度的几条基本计算规则5.常见时间复杂度分析6.Python内置类型性能分析6.1 timeit模块6.1list的操作测试6.2 list内置操作的时间复杂度6.3 dict内置操作的时间复杂度1.算法的概念算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤原创 2021-10-31 20:36:28 · 61 阅读 · 0 评论