// DataStructure.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
typedef struct Student
{
int data;
Student *next;
}Node;
typedef struct
{
Node *head;
Node *tail;
}Queue;
Queue * create(int *data,int length){
if (data==NULL||length<=0)
{
return NULL;
}
Queue *queue=new Queue();
queue->head=NULL;
queue->tail=NULL;
for (int i = 0; i < length; i++)
{
Node *node=new Node();
node->data=data[i];
node->next=NULL;
if (queue->head==NULL)
{
queue->head=node;
}
else
{
queue->tail->next=node;
}
queue->tail=node;
}
return queue;
}
Node *dequeue(Queue *queue){
if (queue==NULL||queue->head==NULL)
{
return NULL;
}
Node **head=&(queue->head);
Node *p=NULL;
if (*head!=NULL)
{
p=*head;
*head=(*head)->next;
//只有一个元素
if (*head==NULL)
{
queue->tail=NULL;
}
}
return p;
}
void enqueue(Queue **queue,int value){
if (queue==NULL)
{
return ;
}
Node *node=new Node();
node->data=value;
node->next=NULL;
if ((*queue)->tail!=NULL)
{
(*queue)->tail->next=node;
}
else
{
(*queue)->head=node;
}
(*queue)->tail=node;
}
void print(Queue *queue){
if (queue==NULL)
{
return;
}
Node *p=queue->head;
while (p!=NULL)
{
printf("%d\t",p->data);
p=p->next;
}
printf("\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
int data[]={1,2,3,4,5};
Queue *queue=new Queue();
enqueue(&queue,1);
dequeue(queue);
dequeue(queue);
enqueue(&queue,2);
enqueue(&queue,3);
print(queue);
return 0;
}
编程实现队列的入队/出队操作
最新推荐文章于 2023-04-09 00:43:14 发布