数据结构队列
队列也是一种操作受限的限制表,其仅允许在表的一端进行插入,在表的另外一边进行删除 ,就像我们平时排队一样,总是后面插入,前面的人买好东西离开。
简单的基本数据队列实现 c/c++实现
Quene *quene;
#define Max_Size=5;
struct Quene
{
int data[Max_Size];
int front; //设置出队数值
int rear; //设置进队数值
};
void creatQuene()
{
quene=(*Quene)malloc(sizeof(Quene));
quene->front=quene->rear=-1;
}
void bool addQuene(int data)
{
if(quene->rear==Max_Size-1)
{
return false;
}
else
{
quene->rear++;
quene->data[quene->rear]=data;
return true;
}
}
通过单链表形成队列
通过一个队列结构体,将数据串入其中,刚开始的时候队首和队末都为空,通过尾插法,将数据插入,同时队首指针记录着初始指针位置 ,便于删除,同样可以进行大规模的存储。
Node *node;
Quene *quene;
struct Quene //具体的数据结构体
{
int data;
Quene *next;
};
struct Node //实现的队列结构体
{
Quene *rear;
Quene *front;
};
void creatQuene()
{
node=(*Node)malloc(sizeof(Node));
node->rear=NULL;
node->front=NULL;
}
void bool addQuene(int data)
{
quene=(*Quene)malloc(sizeof(Quene));
quene->data=data;
quene->next=NULL;
if(node->rear==NULL) //如果是第一次插入数据,将队首和队末指针指向同一个地址
{
node->front=node->rear=quene;
}
else //如果不是第一次插入,尾插法,将quene插入,同时将node- //>rear后移,便于
{
node->rear->next=quene;
node->rear=quene;
}
}