使用双向链表(链表的链表)从(行、列、值)的元组列表构建电子表格

问题描述 投票:0回答:0

使用二维数组从(行、列、值)的元组列表构建电子表格。没有 numpy 这与这个结果相同,但我不知道该怎么做 我只知道链表和双链表的基本概念,但这目前很难,我不知道该怎么做或它看起来如何 所以目前我的代码只能构建一个不匹配的单双链表

如果请帮助我如何构建电子表格,这样我就可以完成剩下的作业,那就太好了

class Node:
    '''
    A basic type in linked list
    '''

    def __init__(self, value=None):
        self.m_value = value
        self.m_next = None
        self.m_prev = None

    def get_value(self):
        return self.m_value

    def get_next(self):
        return self.m_next

    def get_prev(self):
        return self.m_prev

    def set_value(self, value):
        self.m_value = value

    def set_next(self, next):
        self.m_next = next

    def set_prev(self, prev):
        self.m_prev = prev


class LinkedListSpreadsheet(BaseSpreadsheet):
    # Default constructor
    def __init__(self):
        """
        Default constructor.
        """
        self.m_head = None
        self.m_tail = None
        self.m_length = 0
        self.m_rows = 0
        self.m_cols = 0

    def buildSpreadsheet(self, lCells: [Cell]):
        """
        Construct the data structure to store nodes.
        @param lCells: list of cells to be stored
        """
        for cell in lCells:
            node = Node(cell)
            # If head is empty, then list is empty and head and tail references need to be initialised.
            if self.m_head is None:
                self.m_head = node
                self.m_tail = node

            # otherwise, add node to the End of list.
            # why doing in this reverse order from the lab => because it will match the correct order of lcell
            # Or we can just reverse print but very hard to track
            else:
                node.set_next(self.m_head)
                self.m_head.set_prev(node)
                self.m_head = node
            self.m_length += 1

buildSpreadsheet 100% 不正确,我不知道如何修复它

python-3.x list doubly-linked-list
© www.soinside.com 2019 - 2024. All rights reserved.