"""
线性表的定义分类:
一、定义:具有零个或多个数据元素的有限序列
二、特征:第一个元素没有前驱元素 最后一个元素没有后继元素 其它的元素只有一个前驱元素和一个后继元素
三、操作:插入 删除 查找
四、分类:
1、顺序表:存储结构连续
定义:在计算机的内存中 以一组地址连续的存储单元 依次存储数据元素的线性结构
优缺点:
优点:支持随机访问
缺点:插入删除需要移动大量元素 造成存储空间碎片
在python中的应用:列表/元组
时间复杂度:访问 O(1) 插入删除O(n)
2、链表:逻辑连续 存储结构不连续
定义:常见的数据结构 是一种线性表
分类:单向链表、单向循环链表、双向链表
优缺点:
优点:插入删除方便
缺点:不支持随机访问
时间复杂度:访问O(n) 插入删除O(n)
栈:
栈的定义:只允许在表尾进行插入删除的线性表
特征:后进先出
Stack() 创建一个新的空栈
push(item) 添加一个新的元素item到栈顶
pop() 弹出栈顶元素
peek() 返回栈顶元素
is_empty() 判断栈是否为空
size() 返回栈的元素个数
队列:
只允许在一端插入另一端删除的先进先出的线性表
Queue() 创建一个空的队列 alist = []
enqueue(item) 往队列中添加一个item元素 alist.append()
dequeue() 从队列头部删除一个元素 alist.pop(0)
is_empty() 判断一个队列是否为空
size() 返回队列的大小
树:
节点的度:一个节点含有子树的个数 称为该节点的度
树的度:最大节点的度 就是树的度
叶节点/终端节点:度为零的节点
父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点
子节点:一个节点含有的子树的节点称为该节点的子节点
兄弟节点:具有相同父节点的节点互称为兄弟节点
节点的层次:从根开始定义起 根为第1层 根的子节点为第2层 以此类推
树的高度或深度:树中节点的最大层次
堂兄弟节点:父节点在同一层的节点互为堂兄弟
节点的祖先:从根到该节点所经分支上的所有节点
子孙:以某节点为根的子树中任一节点都称为该节点的子孙
森林:由m(m>0)棵互不相交的树的集合称为森林
树的分类:
有序树:
无序树:
二叉树***:
完全二叉树:
平衡二叉树:
排序二叉树:
霍夫曼树:
B树:
树的存储:
顺序存储:
链式存储:二叉树存储方式
树的应用:
路由协议 、 mysql数据库索引 、 文件系统的目录结构 、 AI算法 、 xml/html
二叉树:
完全二叉树:
满二叉树:除了叶节点 其它的节点都有左右子树
遍历:
深度优先遍历:
先序:根节点 左子树 右子树
A - B - D - H - I - E - J - C - F - G
中序:左子树 根节点 右子树
H - D - I - B - J - E - A - F - C - G
后序:左子树 右子树 根节点
H - I - D - J - E - B - F - G - C - A
广度优先遍历: - - - - - 层次遍历
从上到下、从左到右 依次遍历
"""
Python --- 线性表、栈、队列、树
最新推荐文章于 2025-03-18 15:04:23 发布
本文深入探讨Python中数据结构的基础,包括线性表的基本操作,栈的先进后出特性,队列的先进先出原则以及二叉树的构造和遍历方法。通过实例代码解析,帮助读者理解并掌握这些基本数据结构的使用。
1万+





