歌者文明清理员 发表于 2023-2-10 07:29:26

python算法:Node

本帖最后由 歌者文明清理员 于 2023-2-10 07:32 编辑

之前没重视算法,python强大的列表、tuple、dict、set使python很强,不用学算法;
可C++…
注:写给希望研究python算法的小伙伴看的,老手不想学直接忽略
从最基础的开始,Node节点类
首先,
class Node:
    def __init__(self):
,这个毫无疑问。
然后想想要填参数:
data:节点的数据
next:下一个节点,默认为None

然后还要存到对象里,成为它的属性:
class Node:
    def __init__(self, data, next=None)
      self.data = data
      self.next = next
再加上__repr__方法,至于__repr__和__str__的区别…自行百度吧
repr('abc') 'abc'; str('abc') abc
    def __repr__(self):
      return f'Node(' + repr(self.data) + ')'
结束了。
q:啊这…
a:确实如此啊
q:为什么要有next
a:下次链表的时候,需要使用下一个节点怎么办?
q:凉拌
验证类是否可行:
if __name__ == '__main__':
    node3 = Node(114)
    node2 = Node('Bye', node3)
    node1 = Node('hello', node2)
    print(node3, node2, node1)
    print()
    print(node1.next.next)
    print(node1.next.next.next)
### result ###
Node(114) Node('Bye') Node('hello')

Node(114)
None

结束
等等—记得保存为“node.py”

chinajz 发表于 2023-2-10 08:47:09

做个笔记,哈哈
#coding=gbk
class Node:
    def __init__(self, data, next=None):
      self.data = data
      self.next = next
    def __repr__(self):
      return f'Node(' + repr(self.data) + ')'
if __name__ == '__main__':
#仅前文件,__name__ 是__main__,否则作为被导入对象时,以下测试代码不运行
    node3 = Node(114)
    node2 = Node('Bye', node3)
    node1 = Node('hello', node2)
    print(node3, node2, node1)
    print()
    print(node1.next.next)
    print(node1.next.next.next)

运行结果:
Node(114) Node('Bye') Node('hello')

Node(114)
None

歌者文明清理员 发表于 2023-2-10 16:39:40

chinajz 发表于 2023-2-10 08:47
做个笔记,哈哈

运行结果:

# -*- coding: utf-8 -*-
页: [1]
查看完整版本: python算法:Node