python中的一切都是对象,任何自定义的数据结构都可以写成类
一、线性表
1.数组实现
list, import array, np.array Python中list实现为动态数组,而不是链表?
常用方法
append,extend, insert ,remove …
更多可参见python tutorial list
2.链表
最后一个节点没有后继节点了,因此它的指针指向空即NULL
循环链表最后一个指针指向链表头
单链表节点
class SingleLinkListNode(object):
"""
单链表结点类
"""
def __init__(self, data=None, next_node=None):
self.data = data # 数据域
self.next = next_node # 指向下一个结点的指针(也即是地址)
双向链表节点
class DoubleLinkListNode(object):
"""
双链表结点类
"""
def __init__(self, data=None, prev_node=None,next_node=None):
self.data = data # 数据域
self.prev = prev_node # 指向前驱节点
self.next = next_node # 指向后继节点
链表和链表节点是两个不同的概念,链表除了以上的定义之外还需要定义一些其他的类方法
二、栈与队列
三、树与二叉树
1.树
2.二叉树基本概念
3.二叉查找树
4.平衡二叉树
5.红黑树
四、图
五、总结
参考
数据结构与算法(Python)——常见数据结构Part1(数组和链表)
常见数据结构与算法整理总结(上) C++
练习
[leetcode linked list]