我开始在学校最后一年开始之前检查数据结构和算法,以确保我掌握一切.一个评论问题说"使用链表或动态数组实现堆栈并解释为什么你做出了最好的选择".
对我来说,使用带有尾指针的列表来实现堆栈似乎更直观,因为它可能需要经常调整大小.对于大量数据来说,列表是更好的选择,因为动态数组重新调整大小是一项昂贵的操作.此外,使用列表,您不需要分配比实际需要更多的空间,因此它更节省空间.
但是,动态数组肯定允许更快地添加数据(除非需要调整大小).但是,我不确定使用数组是否整体更快,或者只是不需要调整大小.
该书的解决方案说"存储非常大的对象,列表是一个更好的实现",但我不明白为什么.
哪种方式最好?应该使用哪些因素来确定哪种实施方式"最佳"?还有,我的逻辑是什么?
performance stack linked-list dynamic-arrays data-structures
在过去的几天里,我一直在为第一次软件开发工作的电话采访做准备.在研究问题时,我提出了这篇文章.
在我到达这段经文之前,每件事都很棒
"你什么时候使用链表和矢量?"
现在根据经验和研究,这两个是非常不同的数据结构,链表是动态数组,矢量是空间中的2d点.我可以在两者之间看到的唯一关联是,如果你使用向量作为链表,比方说myVector(my value, pointer to neighbor)
思考?