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

将一个值为 `val` 的节点追加到列表 python3 的末尾

将一个值为 `val` 的节点追加到列表 python3 的末尾

PIPIONE 2022-10-25 16:16:16
我有一个测试程序需要运行而没有任何错误。我有一个不同的程序定义了这个方法中的方法我需要将一个值为 val 的节点附加到列表的末尾我不知道如何开始,希望任何人都能让我上路!对于称为 opg1 的方法class List:    """ This implements a list using `Node` for its elements """    class Node:        """ A node consists of a value (val) and a  next-ptr (lnk) """        def __init__(self, val, lnk=None):            self.val = val            self.lnk = lnk    def __init__(self, root=None):        self.root = root    def append(self, val):        """ Appends a node with value `val` to the end of the list.        """ 这是我需要编写代码来完成测试和测试的地方:from opg1 import *# Test for List.append(val)if __name__ == '__main__':    l = List()    l1 = List(List.Node("one"))    l12 = List(List.Node("one", List.Node("two")))    l123 = List(List.Node("one", List.Node("two", List.Node("three"))))    for l, r in [            ( l, "[four]" ),            ( l1, "[one,four]" ),            ( l12, "[one,two,four]" ),            ( l123, "[one,two,three,four]" ),            ]:        l.append("four")        if l.show() != r:            print("Error: {} != {}".format(l.show(), r))    print('End of Tests.')
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

尝试这个:


class List:

    """ This implements a list using `Node` for its elements """

    class Node:

        """ A node consists of a value (val) and a  next-ptr (lnk) """

        def __init__(self, val, lnk=None):

            self.val = val

            self.lnk = lnk


    def __init__(self, root=None):

        self.root = root


    def append(self, val):

        """ Appends a node with value `val` to the end of the list.

        """ 

        if self.root is None:

            self.root = List.Node(val)

        else:

            curr = self.root

            while curr.lnk:

                curr = curr.lnk

            curr.lnk = List.Node(val)

# Test for List.append(val)

if __name__ == '__main__':

    l = List()

    l.append('one')

    l.append('two')

    l.append('three')

    print(l.root.val, l.root.lnk.val, l.root.lnk.lnk.val)

    print('End of Tests.')

输出:


one two three

End of Tests.


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号