您的位置:首页 > 理论基础 > 数据结构算法

Python的几个常用的数据结构

2019-01-19 21:21 621 查看

数据结构的定义:相互之间存在一种或者多种特定关系的数据元素组合。

常用的数据结构:顺序线性表、线性链表、堆栈、队列、树、哈希表

1. 顺序线性表

用一组地址连续的存储单元,依次存储线性表的元素
访问表元素的方法:通过起始地址+偏移量访问每一个元素
访问每一个元素所花费的时间复杂度都是一致的。
顺序线性表的随机访问性特别好,但是添加或者删除数据的时候比较麻烦。

2. 线性链表

线性链表不是连续的。
线性链表每一个点被称为节点,每一个节点分为两个部分:一个是数据域:存储元素,一个是指针域:存储下一个元素的内存(位置)。
访问元素:每一次都是找到头元素,根据头元素的指针一直往下找,直到找到元素位置。
线性链表优缺点:随机访问性不好,添加或者删除数据比顺序线性表方便,快捷。
python中列表选择顺序线性表。

3 堆栈

简称为栈,是一个受限的线性表。
只能在表尾添加或者删除元素,不能在中间添加或者删除元素
表头:栈底
表尾:栈顶
添加和删除的时候,只能操作栈顶元素
堆栈的使用场合:方法的调用、异常的传递和抛出。

4.队列

是一个受限的线性表
只能在对尾增加元素 ,只能在队头删除元素

5. 树

树的结构:由结点集 及连接每对结点的 有向边集 组成
二叉树:任意结点的孩子数不超过两个。根,左子树,右子树
树的深度就是树的层数
遍历二叉树标号:按照从上到下,从左到右进行编号
【满二叉树】 如果一个树的深度m, 节点数是2^m-1,就称为是满二叉树,除了叶子节点以外都具有两个子节点的树
【完全二叉树】:当一颗二叉树的所有编号(从上到下,从左到右进行编号),与满二叉树一致
二叉树的遍历,详细分的话,可以分成:
(都是对于根来说)
先序遍历:根,左,右
中序遍历:左,根,右
后序遍历:左,右,根

6. 哈希表

哈希映射的数据结构。
也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
函数 y=f(x) y=x+1 法则
通过哈希函数将无限的数据映射到有限的数据集上。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: