数据结构知识:链表,队列和栈的区别

作者&投稿:老殃 (若有异议请与网页底部的电邮联系)
C语言中链表与队列有很么区别?~

楼主你好。
链表是一种数据结构,而队列是一种抽象的概念,就像栈一样。
船是一个比较抽象的概念,具体实现有木船、铁船等等。队列好比是船,链表好比是造船的材料。
队列可以用链表实现,也可以用动态数组实现,这个抽象的概念可以用各种具体的数据结构实现。
SQQUEUE的第一个元素elemtype *elem;其实是指向了一个数组,该数组中存储着类型为elemtype的元素,然后front和rear就标识了队首和队尾元素对应的数组下标。

typedef struct _Point{
int x,y;
}Point;
#define elemtype Point//这个elemtype可以是任意你自己定义的结构,可以是结构体,也可以是简单数据类型
elemtype array[10]={0};//这个是队列的数据结构,在这里是一个Point数组
SQQUEUE queue={0};
queue.elem=array;//这样array中的元素就是queue中的元素了。
queue.front=queue.rear=queue.size=0;

你说的next指针是链表节点中的成员。你想想链表和链表节点间的区别。
typedef struct _ListNode{//这是链表节点
int x,y;//这是存储的数据
struct _ListNode *next;
}ListNode;
typedef struct _List{//这是链表,这里并不存储next
ListNode* front,rear;
}List;
如果还不懂,可以追问我。

是不同的数据结构
不过它们本身是不同的分类
通常说的链表指的是用链式存储方式存储的“线性表”

因为数据的存储分两大类 : 顺序存储(数组) 链式存储(链表)
而按逻辑分又有:线性表,栈,队列,树,图等
栈有顺序存储也有链式的,分别为顺序栈和链栈
而线性表也有两种存储方式 分别叫顺序表和链表

楼上说的先进先出的那叫队列 栈是先进后出 而链表没什么先进先出之类的 它可以在任意位置插入所以不能这样讨论

都是线性表
链式队列是先进先出的链表
链式堆栈是先进后出的链表

链表是一种存储结构,指的是存储时候除了要存储数据元素外,还要用数据元素一起的另外空间存储数据元素的关系
队列和栈都是线性表,属于逻辑结构范畴,都是访问点受到限制,并且限制在线性表端点的线性表
栈被限定为在线性表的同一个(唯一的一个)端点插入删除
队列被限定为在线性表的一端插入,另外一个端点删除
栈和队列也可以用链表实现,分别称为链栈和链队列

栈和队列的共同点和不同点
答:做重点讲解。使用栈结构存储数据,讲究“先进后出”,即最先进栈的数据,最后出栈;使用队列存储数据,讲究"先进先出",即最先进队列的数据,也最先出队列。既然栈和队列都属于线性表,根据线性表分为顺序表和链表的特点,栈也可分为顺序栈和链表,队列也分为顺序队列和链队列。

数据结构与算法-队列
答:而链队列不存在这个问题,尽管它需要一个指针域,会产生一些空间上的开销,但也可以接受。所以在空间上,链队列更加灵活。总的来说,在可以确定队列长度最大值的情况下,建议用循环队列,如果你无法预估队列的长度时,则用链队列。栈和队列也都可以通过链式存储结构来实现,实现原则上与线性表基本相同如图...

C语言栈和队列或者链表之类的数据结构中可以存放不同类型的数据吗?如一...
答:对于栈 、队列、链表,你可以声明不同类型的它们,比如声明一个整型栈,那该栈就只能存放整型数据。你声明什么类型的数据结构,就只能存放什么类型的数据。对,elemtype实际上就是任意类型的意思,当你实际操作时,需要将其换成自己要用的类型。

数据结构与算法基础知识
答:1.数据结构的逻辑结构 (1)集合结构 (2)线性结构(存在唯一的第一个元素与唯一的最后一个元素)(eg: 线性表、队列、栈、字符串、数组、链表)(3)树形结构(一对多)(4)图形结构(多对多)2.数据结构的物理(存储)结构 (1).顺序存储结构(插入与删除低效因为要挪动其他元素的位置。但是遍历简单)(2)....

数组和队列的区别
答:数组、链表、堆栈和队列是最基本的数据结构,任何程序都会涉及到其中的一种或多种。1 数组 数组是最最基本的数据结构,很多语言都内置支持数组。数组是使用一块连续的内存空间保存数据,保存的数据的个数在分配内存的时候就是确定的:访问数组中第 n 个数据的时间花费是 O(1) 但是要在数组中查找一...

什么是数据结构,数据结构分哪四类
答:常用数据结构 · 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作 · Hash(存储地址计算,冲突处理)

栈和队列在计算机系统中有哪些应用?
答:栈是在一列数据中,一块后进先出的地方,在编程中比如1+2+3+……+100,就可以利用栈来完成;而队列先进先出的地方,比如打印文档就是排队等候,先到的就先得打印一样。在计算机系统中编程方面用得最多也最明显,在已经成为程序成品的不太明显,最明显的就是打印。栈和队列都属于一位链表,栈是...

在C++语言中,什么是队列?
答:最后说你的困惑,你之所以吧队列跟数组联系到一起,那么你现在理解的队列,是顺序队列。他们的关系是什么呢,首先数组是语言的东西,队列是数据结构的东西。然后,如果你在C++里面实现书序队列,那么,你可以理解成,数组就是顺序数组(其实没有链表数组),它跟顺序队列,书序栈,顺序二叉树等等,是平行的...

栈和链表是两种不同的数据结构吗
答:是不同的数据结构 不过它们本身是不同的分类 通常说的链表指的是用链式存储方式存储的“线性表”因为数据的存储分两大类 : 顺序存储(数组) 链式存储(链表)而按逻辑分又有:线性表,栈,队列,树,图等 栈有顺序存储也有链式的,分别为顺序栈和链栈 而线性表也有两种存储方式 分别叫顺序表和...

数据结构三要素
答:3、解决实际问题:数据结构为解决具体实际问题提供了基础和工具。不同的问题可能需要不同的数据结构来表示和处理数据,例如栈、队列、树等。掌握不同数据结构及其操作,可以更好地解决实际问题,如图算法用于社交网络分析、树算法用于文件系统的组织等。4、代码复用与维护:使用合适的数据结构可以提高代码的...