python:链表定义以及实现

转自:https://blog.csdn.net/dinnerhowe/article/details/58191823

链表(linked list)是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接.

链表的数据结构如下图所示

Image result for python 链表

在链表中删除操作可以通过修改指针来实现,如下图所示:

Image result for python 链表

插入则是调整,插入点的前后两个指针的指向关系,如下图所示:

Image result for python 链表

但是和c不一样,python没有专门的指针概念,在python中每个变量都是指针,例如:

用内置数据结构(list, dict, tuple等)的嵌套/组合,它们隐式地包含了指向/嵌套关系,如graph[u][v]={w0,w1..}
类的成员变量、嵌套类可能包含了指向/嵌套关系;
引用表示指向关系,只不过引用不能像指针一样运算,比如 p + 1 指向下一个元素,所以可能限制颇多

因此,要实现链表的操作,不能和c一样直接对指针进行操作.

链表实现

实现链表总体需要两部

1.定义链表:

2.对链表进行操作


其中对链表进行操作部分,大致是包括添加新的node, 反向排列链表, 打印链表.

添加链表节点时候操作如下:

假设有要完成链表操作为:

链表是:

且需要吧1,8,3按1 -->8 -->3的顺序放入链表中,需要进行的操作则

结果是:

1 -->8 -->3

调用反向排列链表方式如下:

打印链表的操作如下:

GitHub: https://github.com/DinnerHowe/LeetCode.git

参考: 

http://www.aspku.com/tech/jiaoben/python/83593.html

知乎

猜你喜欢

转载自blog.csdn.net/huanhuanq1209/article/details/82430504