队列结构
来源:互联网 发布:2017网络机顶盒哪个好 编辑:程序博客网 时间:2024/06/06 01:47
队列结构
- 顺序队列结构 即使用一组地址连续的内存单元依次保存队列中的数据。在程序中,可以定义一个指定大小的结构数组作为队列。
- 链式队列结构 即使用链表形式保存队列中各元素的值。
从数据运算角度来分析,队列结构是按照“先进先出的原则处理结点的数据”。
基础数据
public class DATA4 { private String name; private int age;// public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
队列操作
public class SQType { static final int QUEUELEN = 15; DATA4[] data = new DATA4[QUEUELEN]; // 队列数组 int head; //对头 int tail; //对尾 // 初始化队列结构 /** * 1 按符号常量QUEUELEN 指定的大小申请一片内存空间,用来保存队列中的数据。 * 2 设置head=0和tail=0,表示一个空栈。 */ SQType SQTypeInit(){ SQType q; if((q = new SQType())!=null){ q.head = 0; q.tail = 0; return q; }else { return null; } } // 判断空队列 /** * 判断空队列即判断一个队列是否为空。如果是空队列,则表示该队列结构中没有数据。 * 此时可以进行入队列操作。但不可以进行出队列操作。 */ 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; } // 清空队列 /** * 清空队列中的所有数据。 */ void SQTypeClear(SQType q){ q.head = 0; // 设置对头 q.tail = 0;// 设置队尾 } // 释放空间 /** * 释放队列结构所占据的内存单元。 */ void SQTypeFree(SQType q){ if(q!=null){ q=null; } } // 入队列 /** * 1 首先判断队列顶tail ,如果tail等于QUEUELEN ,则表示溢出,进行出错处理;负责执行以下操作。 * 2 设置tail = tail+1 * 3 将入队元素保存到tail指向的位置。 */ int InSQType(SQType q,DATA4 data){ if(q.tail == QUEUELEN){ System.out.printf("队列已满!操作失败"); return 0; }else { q.data[q.tail++] = data; return 1; } } // 出队列操作 /** * 1 判断队列head,如果head等于tail,则表示为空队列,进行出错处理;否则执行下面操作。 * 2 从队列首部取出对头元素。 * 3 设修改队头head的序号。使其指向后一个元素。 */ DATA4 OutSQType(SQType q){ if(q.head == q.tail){ System.out.printf("队列已空!操作失败"); }else { return q.data[q.head++]; } return null; } // 读结点操作 /** * 读取头结点数据 不删除 */ DATA4 PeekSQType(SQType q){ if(this.SQTypeIsEmpty(q)==1){ System.out.printf("空队列!"); return null; }else { return q.data[q.head]; } } // 计算队列长度 /** * 统计队列中结点的个数。队尾序号减去对头序号 */ int SQTypeLen(SQType q){ int temp; temp = q.tail - q.head; return temp; } //}
阅读全文
0 0
- 队列结构
- 队列结构
- 队列结构
- 队列::链表结构
- 任务队列执行结构
- 队列的顺序结构
- 线性结构_队列
- 线性结构 循环队列
- 结构体优先队列
- 数据结构-线性结构-队列
- 链式队列结构
- 队列的链式结构
- 学习队列结构
- 线性结构---队列
- 栈结构、队列
- 线性结构之队列
- 3. 线性结构--队列
- 顺序结构的队列
- angular2中input与output实战
- 协调多个对象之间的交互——中介者模式(三)
- oracle事务
- IDEA 安装 mybatis-plugin并破解
- java IO流之文本内容的行逆序拷贝
- 队列结构
- 判断两个二叉树是否相似
- maven-shade-plugin踩坑记
- JDBC连接MySQL和SQL Server的工具类
- 朴素bayes 算法
- vue中的路由及自定义图标
- 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
- 图遍历的算法
- Go-gin的基本使用