说明线性表、栈与队的异同点
一、相同点
都是线性结构,都是逻辑结构的概念。都可以用顺序存储或链表存储;栈和队列是两种特殊的线性表,即受限的线性表,只是对插入、删除运算加以限制。
二、不同点:
1、运算规则不同
线性表为随机存取,而栈是只允许在一端进行插入、删除运算,因而是后进先出表LIFO;队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表FIFO。
2、用途不同
堆栈用于子程调用和保护现场,队列用于多道作业处理、指令寄存及其他运算等等。
扩展资料
线性表的特点
1.集合中必存在唯一的一个“第一元素”。
2.集合中必存在唯一的一个 “最后元素” 。
3.除最后一个元素之外,均有唯一的后继(后件)。
4.除第一个元素之外,均有唯一的前驱(前件)。
线性表、包括顺序表和链表,顺序表里面元素的地址是连续的。链表里面节点的地址不是连续的,是通过指针连起来的。
顺序表相关的操作跟数组有关,一般都是移动数组元素。优点:随机访问特性,查找O(1)时间,存储密度高;逻辑上相邻的元素,物理上也相邻。缺点:插入删除需移动大量元素。
区别主要在动态分配上,现代语言支持动态数组,可以在运行期决定数组大小,但早期语言并不支持,因此数组必须在编译器确定大小。
而线性链表可以动态决定大小,随时删减添加,并且能够知道元素个数。数组除非用动态定义否则你要自己知道元素个数。比如c89就不支持动态数组,但c99支持。iso
c++也不支持,但c+0x支持。
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)