C语言中链表与队列有什么区别?

作者&投稿:莫府 (若有异议请与网页底部的电邮联系)
在C语言中数组和链表有什么区别?~

二者都属于一种数据结构
从逻辑结构来看
1.
数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。
2.
链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元素
从内存存储来看
1.
(静态)数组从栈中分配空间,
对于程序员方便快速,但是自由度小
2.
链表从堆中分配空间,
自由度大但是申请管理比较麻烦
从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反,
如果需要经常插入和删除元素就需要用链表数据结构了。

楼主你好。
链表是一种数据结构,而队列是一种抽象的概念,就像栈一样。
船是一个比较抽象的概念,具体实现有木船、铁船等等。队列好比是船,链表好比是造船的材料。
队列可以用链表实现,也可以用动态数组实现,这个抽象的概念可以用各种具体的数据结构实现。
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语言的链表与队列是两种不同的概念:

链表是一种数据的存储方式,其保存的数据在内存中是不连续的,采用指针对数据进行访问;
队列是一种数据结构,其特点是先进先出,后进后出;

队列的存储方式可以使用线性表进行存储,也可以使用链表进行存储。

SQQUEUE的第一个元素elemtype
*elem;其实是指向了一个数组,该数组中存储着类型为elemtype的元素,然后front和rear就标识了队首和队尾元素对应的数组下标。

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




c语言的数据结构和程序设计
答:有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 研究内容 在计算机科学中,...

c语言链表是什么意思
答:链表是一种数据结构,它由若干个节点组成,每个节点由两部分组成:一是表示数据的数据域,二是表示下一个节点地址的指针域。它的最大优点就是可以动态地添加、删除、修改节点,因此比数组更为灵活。在C语言中,链表可以通过结构体和指针来实现。对于需要频繁修改数据的问题,链表是一个非常好的解决方案。

数据结构哪些是四种常见的逻辑结构
答:四种常见的逻辑结构:1、集合结构 数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;2、线性结构 数据结构中的元素存在一对一的相互关系 3、树形结构 数据结构中的元素存在一对多的相互关系 4、图形结构 数据结构中的元素存在多对多的相互关系 ...

python中的链表和列表有什么区别
答:它们的主要区别在于内存分配和访问元素的方式。列表是一种基于数组实现的数据结构,它在内存中是连续存储的,因此可以通过索引快速访问元素。而链表则是一种基于指针实现的数据结构,它在内存中是离散存储的,每个元素都包含一个指向下一个元素的指针,因此访问元素的时间复杂度为O(n)。另外,由于链表的...

在C语言中,什么是链表呀?
答:链表允许插入和移除表上任意位置上的节点,[1]但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。编辑本段...

c语言 链表是什么,有什么用,它的基本结构是什么
答:链表不属于C语言,它是一种数据结构,在C语言中用结构体来表示链表的结点,这个结构体中包含有数据域和指向自身的指针。可用于实现队列、堆栈等其它数据结构,以及动态存储等

数据结构 都有哪些结构
答:常用数据结构 数组 (Array)在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可...

数据结构的概念与C语言中数据类型的概念有何异同
答:c语言数据类型一般说的是基本数据类型,像整形、浮点型、字符型等,这些都是最基本的数据类型。数据结构的概念就比较上层了,比如堆、栈、链表、队列等,这些数据结构都有一定的特点,比如队列就是先进先出的模型。比如我要设计一个服务器,一秒钟只能给一个用户提供服务,但是有时一秒钟会有两个甚至三...

C语言中队列怎样创建?
答:队列是一种特殊的链表,在你写GET和PUT方法时只需要返回链表的第一个值,把你要输的值放链表的最后就是队列了!!!

c语言 链表是什么,有什么用,它的基本结构是什么
答:表不属于C语言,它是一种数据结构,在C语言中用结构体来表示链表的结点,这个结构体中包含有数据域和指向自身的指针。可用于实现队列、堆栈等其它数据结构,以及动态存储等 匿名 �0�26-14 20:46 其他答案 链表是C语言非常重要的、很实用的一种指针结构。要讲的内容一大堆。