java数据结构(三)——队列

来源:互联网 发布:java 基础 代码 编辑:程序博客网 时间:2024/06/04 16:27

  队列结构是从数据运算来分类的,也就是说队列结构具有特殊的运算规则。从数据运算角度讲,队列结构是按照“先进先出”(First in First Out, FIFO)的原则处理结点数据的。队列是一种线性结构,从存储角度分可分为以下两种:

1.顺序队列 2.链式队列

基本操作:

1.入队列:将一个元素添加到队尾(相当于到队列最后排队等候)。

2.出队列:将队头元素取出,同时删除该元素,使后一个元素成为队头。

下面是数据结构:

1.数据定义

class DATA{    String name;    int age;}class SQType{    static final int QUEUELEN=15;    DATA[] data=new DATA[QUEUELEN]; //队列数组     int head; //队头     int tail; //队尾  }

2.队列初始化

SQType SQTypeInit()    {    SQType q;        if((q=new SQType())!=null) //申请内存         {            q.head = 0;//设置队头             q.tail = 0;//设置队尾             return q;        }    else    {            return null; //返回空    }    }

3.判断队列是否已满/空

int SQTypeIsEmpty(SQType q)  //判断空队列    {    int temp=0;    if(q.head==q.tail)    temp=1;        return (temp);    }    int SQTypeIsFull(SQType q)// 判断满队列    {    int temp=0;    if(q.tail==QUEUELEN)    temp=1;        return (temp);    }

4.清空队列+释放空间

void SQTypeClear(SQType q)  //清空队列     {        q.head = 0;//设置队头         q.tail = 0;//设置队尾     }    void SQTypeFree(SQType q) //释放队列    {        if (q!=null)    {           q=null;    }    }

5.入/出队列
int InSQType(SQType q,DATA data)//入队列    {        if(q.tail==QUEUELEN)        {             System.out.print("队列已满!\n");            return(0);        }    else    {            q.data[q.tail++]=data;//将元素入队列            return(1);        }    }    DATA4 OutSQType(SQType q) //出队列    {        if(q.head==q.tail)        {            System.out.print("\n队列已空!操作失败!\n");                        System.exit(0);        }    else    {            return q.data[q.head++];        }return null;    }

6.读取结点数据

DATA PeekSQType(SQType q) //读结点数据    {        if(SQTypeIsEmpty(q)==1)        {            System.out.print("\n空队列!\n");            return null;         }    else    {            return q.data[q.head];        }    }

7.计算队列长度

 int SQTypeLen(SQType q) //计算队列长度     {    int temp;    temp=q.tail-q.head;        return (temp);    }
  队列也算是一种基础的数据结构,在以后数的遍历算法以及后续的很多东西都会用到。

0 0
原创粉丝点击