python 中数据结构的存储方法

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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值