我目前正在学习算法和数据结构的基础知识,我对这些概念以及数组,链表和堆栈之间的差异感到有些困惑。
如果我错了,请纠正我:堆栈更像是抽象概念,数组和链表是数据结构吗? (因此我们可以使用数组或链接列表来实现堆栈的概念)
答案 0 :(得分:3)
<强>阵列强>
书是一个数组。您可以按索引转到任何页面,然后按照您喜欢的任何增量快速前进或后退。
关联列表
清道夫狩猎是一个链表。您只能从一个项目转到下一个项目,因为每个项目都包含查找下一个项目的信息。
<强>堆栈强>
桌面上的一堆字母是一堆。你只能看到顶上的字母。删除顶部字母会显示下一个字母。
答案 1 :(得分:1)
从编程理论的角度来看,所有树都是抽象数据类型它们之间的根本区别在于它们的特征。
使用数组或链表可以实现是正确的,但这已经是一个实现的观点。从理论角度来看,它们是不同的抽象数据类型
事实上,如果你在汇编语言级别上深入挖掘,你只有2个选项来定位任意元素:
答案 2 :(得分:0)
ARRAY - 一个容器,可以被称为固定数量的项目,并且这些项目应该是相同的类型。
STACK - 一个元素列表,其中一个元素只能在称为栈顶的一端添加或删除。
LINKEDLIST - 称为节点的数据元素的线性集合,通过指针指向下一个节点。