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
- java数据结构(三)——队列
- C++数据结构(三)——队列
- 《队列——数据结构Java》
- 【数据结构】——-栈、队列和数组(三)
- 学习JavaScript数据结构与算法(三)——队列
- <数据结构> 实验三 栈和队列——队列
- 数据结构(三)——队列及实现、循环队列实现
- 数据结构之队列(三)
- 数据结构(三)--循环队列
- 数据结构(三)队列结构
- 数据结构--队列(java)
- 数据结构(Java)---队列
- Java数据结构与算法解析(三)——队列与背包
- Java数据结构与算法解析(三)——队列与背包
- 数据结构之java实现链式队列(三)
- 数据结构——使用双端链表实现队列(java实现)
- 数据结构与算法(java)——栈和队列
- 数据结构Java实现——②队列
- Java千百问_01基本概念(012)_Socket是什么
- 线程与进程共享的资源种类
- 读写其他应用程序的sharedpreferences
- STM32学习经验(补充)
- Windows 2008 账户组及权限
- java数据结构(三)——队列
- zf框架下smatry模板tpl输出xls文件
- copvalue from wrapper type to primitive type
- Java继承和组合的区别
- 用thinkphp开发微信,接口配置总失败问题
- 如何把void* 类型转变为二维数组
- input搜索框的隐藏和显示
- hadoop中 hadoop fs -getmerge 命令合并多个文件
- 端口随意开很危险 常见端口解析