In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data.[1][2][3]
More precisely, a data structure is a collection of
逻辑结构
数据运算/操作
一种具体的数据结构体现了这三方面
在面向对象程序设计中的编写类(class)的完整过程,就很好的体现了数据结构的三要素
指数据元素之间的逻辑关系,从逻辑关系上描述数据
它于数据的存储结构无关,是独立于计算机的
逻辑结构分为
线性结构(三大类)
一般线性表
顺序表
(存储结构上顺序表的方式是基于一片连续的物理地址)单链表
(单叉链表)(存储结构上链表可以不连续)
链表
(操作)受限线性表
线性表的推广
线性结构经常可以由顺序存储结构实现,也可以由链式存储实现
非线性结构
前两类最为基础
栈,队列,循环队列这几种数据结构都属于线性表(逻辑结构)的范畴
如果给定一个完整定义完整的数据结构DS,并告诉你它是线性表(从逻辑结构的角度描述),那么可以推测,它可能是
队列的顺序存储实现的可以称为顺序队列
#define MaxSize 50
typedef struct{
ElemType data[MaxSize];
int front,rear;
}SequentialQueue
顺序存储的队列基本缺点在于空间分配上不容易把握,(比如容易发生溢出或者空间利用率低下)
因此,基于顺序存储结构的这一缺点,改进出来循环队列
(任然基于顺序存储结构)实现的
循环队列
就显得多余,应为链式存储的灵活性,基本不用考虑溢出问题队列的链式存储实现可以称为链队列
typedef struct LinkNode{
ElemType data;
struct LinkNode *next;
}LinkNode;
typedef struct{
LinkNode *front,*rear;
}LinkQueue;
结构(wikipedia)