我知道在一个链表中有一个头节点和一个尾节点。好吧,对于我的数据结构赋值,我们假设创建一个链接矩阵,引用北、南、东、西节点。我不知道如何实现这一点。困扰我的一个持久的问题是头节点和尾节点。用户输入行数和列数。我应该在每行的开头有多个头节点,在每行的末尾有多个尾节点吗?如果是,我是否应该将多个头/尾节点存储在一个列表中?
谢谢。
发布于 2013-10-08 05:25:34
有不止一种方法来解释这一点,但有一种选择是:
在左上角有一个“头”节点,在右下角有一个“尾”节点。然后会有行头、行尾、列头和列尾节点,但这些节点都可以从整个头部和尾部访问,所以您不需要跟踪它们,而且它们已经是链接矩阵的一部分,所以它们不需要是单独的链表的一部分。
(当然,构建零的RxC矩阵的函数可能会有表示当前行的头/尾的局部变量,但这不是问题。)
发布于 2013-10-08 08:20:32
这真的取决于你想要/需要有效地支持什么选项。
例如,只有一个头指针的单链表可以是一个堆栈(在头插入和删除)。如果添加尾部指针,则可以在两端插入,但只能在头部(堆栈或队列)删除。双向链表可以支持在任意一端(双端队列)插入或删除。如果你试图实现一个你的数据结构不是为你设计的操作,将会招致O(N)的惩罚。
因此,我将从指向(0,0)元素的单个指针开始,然后开始执行讲师要求的操作。您可能会发现您需要额外的指针,也可能不需要。我的猜测是,只需一个头指针就可以了。
https://stackoverflow.com/questions/19234950
复制相似问题