为了账号安全,请及时绑定邮箱和手机立即绑定

Python - 链表问题和相关性

Python - 链表问题和相关性

凤凰求蛊 2021-11-02 14:59:55
我正在客户端/服务器上进行简单的聊天。客户端在 VB 中,服务器在 python 中。我想让我的服务器存储我的消息,虽然我最聪明的是建立一个链表(我是 python 的新手,但在 C# 中更高级)。我尝试存储的内容包括:收件人(此处称为 dest)消息(称为 msg)我不知道有多少,如果我有新消息给已经存储了消息的人,我会覆盖我在课堂上试过class tabmessage:    def __init__(self, dest=None,msg=None, next=None):         self.dest = dest        self.msg = msg        self.next = None那作为电话#I create the top of the chain on the beginningmessages = tabmessage(dest='Control',msg='Message Integrity')...然后在一个函数中#Setting the top of the chain(d,m,s) = (messages.dest,messages.msg,messages.next)#Looking for a similar dest in chain and getting at the end at the same timewhile True:        if (d == tempdest):            m = (tempmsg+".")[:-1]            print("Overwrite of msg for" + d + " : " + m);            return        if (s is None):            break        (d,m,s)=(s.dest,s.msg,s.next)#If I did not found it i try to add it to the chains = tabmessage(dest=(tempdest+".")[:-1],msg=(tempmsg+".")[:-1])print("Trying to add : " + s.dest + " : " + s. msg)最后一个打印看起来没问题:尝试添加:用户:这是我的消息但如果我这样做:print("Trying to add : " + messages.next.dest + " : " + messages.next. msg)发生错误(NoneType 没有 dest 元素...),因此顶部仍然是单独的。或者也许在 python 中有更聪明的方法来做到这一点?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

我试图在更高的节点上进行操作,并且它有效。我现在有 :


#Setting the top of the chain

cunode = messages

#Looking for a similar dest in chain and getting at the end at the same time

while True:

    if (cunode.dest == tempdest):

        cunode.msg = (tempmsg+".")[:-1]

        print("Overwrite of msg for" + cunode.dest + " : " + cunode.msg);

        return

    if (cunode.next is None):

        break

    cunode = cunode.next


#If I did not found it i try to add it to the chain

cunode.next = tabmessage(dest=(tempdest+".")[:-1],msg=(tempmsg+".")[:-1])

对我来说看起来完全一样......


查看完整回答
反对 回复 2021-11-02
?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果我正确理解你的功能,你就会找到你想要的节点

if (d == tempdest):

然后你正在写你的信息并返回。因为您返回,所以将 s 分配给新节点的底部语句永远不会运行。我认为你想在那里打破。我不确定这是您唯一的问题,但我认为这就是您的列表没有获得额外节点的原因。


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信