鱼C论坛

 找回密码
 立即注册
查看: 3170|回复: 2

[技术交流] python算法:Node

[复制链接]
发表于 2023-2-10 07:29:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

之前没重视算法,python强大的列表、tuple、dict、set使python很强,不用学算法;
可C++…
注:写给希望研究python算法的小伙伴看的,老手不想学直接忽略
从最基础的开始,Node节点类
首先,
  1. class Node:
  2.     def __init__(self):
复制代码

,这个毫无疑问。
然后想想要填参数:
    data:节点的数据
    next:下一个节点,默认为None

然后还要存到对象里,成为它的属性:
  1. class Node:
  2.     def __init__(self, data, next=None)
  3.         self.data = data
  4.         self.next = next
复制代码

再加上__repr__方法,至于__repr__和__str__的区别…自行百度吧
repr('abc') 'abc'; str('abc') abc
  1.     def __repr__(self):
  2.         return f'Node(' + repr(self.data) + ')'
复制代码

结束了。
q:啊这…
a:确实如此啊
q:为什么要有next
a:下次链表的时候,需要使用下一个节点怎么办?
q:凉拌
验证类是否可行:
  1. if __name__ == '__main__':
  2.     node3 = Node(114)
  3.     node2 = Node('Bye', node3)
  4.     node1 = Node('hello', node2)
  5.     print(node3, node2, node1)
  6.     print([node1, node2, node3])
  7.     print(node1.next.next)
  8.     print(node1.next.next.next)
  9. ### result ###
  10. Node(114) Node('Bye') Node('hello')
  11. [Node('hello'), Node('Bye'), Node(114)]
  12. Node(114)
  13. None
复制代码

结束
等等—记得保存为“node.py”
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-10 08:47:09 | 显示全部楼层
做个笔记,哈哈
  1. #coding=gbk
  2. class Node:
  3.     def __init__(self, data, next=None):
  4.         self.data = data
  5.         self.next = next
  6.     def __repr__(self):
  7.         return f'Node(' + repr(self.data) + ')'
  8. if __name__ == '__main__':
  9. #仅前文件,__name__ 是__main__,否则作为被导入对象时,以下测试代码不运行
  10.     node3 = Node(114)
  11.     node2 = Node('Bye', node3)
  12.     node1 = Node('hello', node2)
  13.     print(node3, node2, node1)
  14.     print([node1, node2, node3])
  15.     print(node1.next.next)
  16.     print(node1.next.next.next)
复制代码

运行结果:
  1. Node(114) Node('Bye') Node('hello')
  2. [Node('hello'), Node('Bye'), Node(114)]
  3. Node(114)
  4. None
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-10 16:39:40 | 显示全部楼层
chinajz 发表于 2023-2-10 08:47
做个笔记,哈哈

运行结果:
  1. # -*- coding: utf-8 -*-
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 01:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表