网站首页 > 基础教程 正文
数据结构是计算机存储、组织数据的方式。不同语言只是数据结构实现的不同工具,但本质是一样的。
Python的强大之处在于其自带的数据结构:列表 list,元组 tuple,字典 dict 等,都非常的强大,尤其是列表,在它们的基础上可以方便快捷的实现常用的数据结构:栈,队列,链表,树等,而没有必要重复造轮子。
栈和队列
栈,是一种仅允许在表的一端进行插入和删除运算的受限线性表,满足后进先出原则。
队列,是一种仅允许在表的前端进行删除操作,而在表的后端进行插入操作的受限线性表,满足先进先出原则。
Python 中的列表,其自有的 insert() 函数可以在任意位置插入, pop() 函数可以在任意位置弹出并删除。
因此,在 Python 中,栈和队列可以用列表实现。
链表和树
链表,是一种在逻辑上连续,但在物理存储单元上不一定连续的线性存储结构。包括存储数据元素的数据域和存储下一个节点地址的指针域。
树,是一种典型的非线性结构,可以用来表示层次关系,因表示的样子很像一颗倒立的树而得名。
在树中,最简单也是应用最广泛的是二叉树,同样包括存储数据元素的数据域和存储左右孩子节点地址的指针域。
在C语言中,因为指针的加持,可以很直观的实现链表和树等需要指针的数据结构,而在 Python 中,虽然没有显式的指针,但每个变量,除了基本数据类型(int,float 等),都是一个『引用』。
引用:当你创建一个对象并给它赋一个变量的时候,这个变量仅仅引用这个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的引用。
可以看出,引用类似于指针,只是不能进行指针运算,比如, p + 1 指向下一个元素操作是不可以的。
因此,在 Python 中,链表和树可以通过定义节点类和引用来实现。
说明
在接下来的文章中,会用 Python 去实现基本的数据结构:栈,队列,链表和树,并都会附上一个小的应用实例。
然后结合剑指offer 中的数据结构相关笔试题,用 Python 来完成,以更好地延伸到数据结构更多的操作和实践中去,希望Python实现数据结构系列文章能助你在 Python 编程学习之路一臂之力。
猜你喜欢
- 2024-11-01 Python数据类型详解-列表#学习猿地
- 2024-11-01 deque库:双端队列 双端队列代码
- 2024-11-01 第27讲 集合(和猫妹学Python) python集合的操作
- 2024-11-01 SQL分析函数,看这一篇就够了 sql 数据分析常用函数
- 2024-11-01 Python基础详解(三):数据结构篇 python数据结构教程
- 2024-11-01 Python基础知识(三):数据结构篇 python 基本数据结构
- 2024-11-01 python列表知识 python 中列表
- 2024-11-01 Python中的几个有趣的基础语法点,带你开启Python之旅
- 2024-11-01 Python数据类型——列表 python 中的数据类型
- 2024-11-01 每天「五分钟」学习Python~数据类型详解-列表
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)