龙空技术网

Python实现数据结构

海晨威 104

前言:

今天我们对“指针python数据结构”大约比较注重,朋友们都需要知道一些“指针python数据结构”的相关资讯。那么小编同时在网上搜集了一些关于“指针python数据结构””的相关文章,希望小伙伴们能喜欢,大家快快来了解一下吧!

数据结构是计算机存储、组织数据的方式。不同语言只是数据结构实现的不同工具,但本质是一样的。

Python的强大之处在于其自带的数据结构:列表 list,元组 tuple,字典 dict 等,都非常的强大,尤其是列表,在它们的基础上可以方便快捷的实现常用的数据结构:栈,队列,链表,树等,而没有必要重复造轮子。

栈和队列

栈,是一种仅允许在表的一端进行插入和删除运算的受限线性表,满足后进先出原则。

队列,是一种仅允许在表的前端进行删除操作,而在表的后端进行插入操作的受限线性表,满足先进先出原则。

Python 中的列表,其自有的 insert() 函数可以在任意位置插入, pop() 函数可以在任意位置弹出并删除。

因此,在 Python 中,栈和队列可以用列表实现。

链表和树

链表,是一种在逻辑上连续,但在物理存储单元上不一定连续的线性存储结构。包括存储数据元素的数据域和存储下一个节点地址的指针域。

树,是一种典型的非线性结构,可以用来表示层次关系,因表示的样子很像一颗倒立的树而得名。

在树中,最简单也是应用最广泛的是二叉树,同样包括存储数据元素的数据域和存储左右孩子节点地址的指针域。

在C语言中,因为指针的加持,可以很直观的实现链表和树等需要指针的数据结构,而在 Python 中,虽然没有显式的指针,但每个变量,除了基本数据类型(int,float 等),都是一个『引用』。

引用:当你创建一个对象并给它赋一个变量的时候,这个变量仅仅引用这个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的引用。

可以看出,引用类似于指针,只是不能进行指针运算,比如, p + 1 指向下一个元素操作是不可以的。

因此,在 Python 中,链表和树可以通过定义节点类和引用来实现。

说明

在接下来的文章中,会用 Python 去实现基本的数据结构:栈,队列,链表和树,并都会附上一个小的应用实例。

然后结合剑指offer 中的数据结构相关笔试题,用 Python 来完成,以更好地延伸到数据结构更多的操作和实践中去,希望Python实现数据结构系列文章能助你在 Python 编程学习之路一臂之力。

标签: #指针python数据结构