对外接口
一.初始化队列
二.入队
三.出队
四.返回头元素
五.返回尾元素
六.返回队列大小
七.判断队列是否为空
八.销毁
seqQueue.h(动态数组)
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"dynamicArray.h"//动态数组的头文件
#define MAX 1024
#define void* seqQueue;
//初始化队列
//入列
seqQueue init_SeqQueue();
//出列
void push_SeqQueue(seqQueue queue,void*data);
//返回队头元素
void * front_SeqQueue(seqQueue queue);
//返回队尾元素
void back_SeqQueue(seqQueue queue);
//返回队列的大小
void size_SeqQueue(seqQueue queue);
//判断队列是否为空
void IsEmpty_SeqQueue(seqQueue queue);
//销毁
void destroy_SeqQueue(seqqueue queue);
tset.c
#include"contact.h"
//测试队列
struct Person
{
char name[64];
int age;
};
tset()
{
//初始化队列
seqQueue queue=init_SeqQueue();
//准备数据
struct Person p1 ={"aaa",10};
struct Person p1 ={"bbb",20};
struct Person p1 ={"ccc",30};
struct Person p1 ={"ddd",40};
struct Person p1 ={"eee",50};
//入队
push_SeqQueue{queue,&p1};
push_SeqQueue{queue,&p2};
push_SeqQueue{queue,&p3};
push_SeqQueue{queue,&p4};
push_SeqQueue{queue,&p5};
while(size_SeqQueue(queue)>0)
{
//获取队头元素
struct Person*pFront=front_SeqQueue(queue);
printf("对头元素---姓名:%s 年龄:%d\n",pFront->name,pFront->age);
//获取队尾元素
struct Person*pBack=back_SeqQueue(queue);
printf("对尾元素---姓名:%s 年龄:%d\n",pBack->name,pBack->age);
//出队
pop_SeqQueue(queue);
}
printf("队列的大小为:%d\n",size_SeqQueue(queue));
}
//判断队列是否为空
//IsEmpty_SeqQueue(queue);
//销毁
destroy_SeqQueue(queue);
int main ()
{
tset()
systrm("puase");
return EXIT_SUCCESS;
}
seqQueuet.c(动态数组)
include"seqQueue.h"
#define void* seqQueue;
//初始化队列
seqQueue init_seqQueue()
{
struct dynamicArray*arr=init_DynamicArray(MAAX);
return arr;
}
//入列
seqQueue init_SeqQueue(seqQueue queue,void *data)
{
if(NULL == queue)
{
return;
}
if(NULL==data)
{
return;
}
struct dynamicArray * myQueue=queue;
if(myQueue->my_size>=MAX)
{
return ;
}
//人队 === 尾插
inset——dynamicArray(myQueue,myQueue->m_size,data);
}
//出列
void push_SeqQueue(seqQueue queue,void*data)
{
{
if(NULL == queue)
{
return;
}
struct dynamicArray * myQueue=queue;
if(myQueue->m_size<=0 )
{
return;
}
removeByPos_DynamicArray(myQueue,0);
}
//返回队头元素
void * front_SeqQueue(seqQueue queue)
{
if(NULL == queue)
{
return NULL;
}
struct dynamicArray * myQueue=queue;
return myQueue->pAddr[0];
}
//返回队尾元素
void* back_SeqQueue(seqQueue queue)
{
if(NULL == queue)
{
return NULL;
}
struct dynamicArray * myQueue=queue;
return myQueue->pAddr[myQueue->m_size-1];
}
//返回队列的大小
int size_SeqQueue(seqQueue queue)
{
if(NULL == queue)
{
return NULL;
}
struct dynamicArray * myQueue=queue;
return myQueue->m_size;
}
//判断队列是否为空
void IsEmpty_SeqQueue(seqQueue queue)
{
IsEmpty_DynamicArray(queue)
}
void destroy_SeqQueue(queue)
{
destroy_DynamicArray(queue);
}