队列结构是一种常见的数据结构,从数据的逻辑结构来看是线性结构,从存储结构来说分顺序和链式存储。且队列的两个基本操作是入队列和出队列,在队头进行出队列操作,在队尾进行入队列操作.
队列中操作的对象:
public class DATA4 { String name; int age; }
队列的基本操作:
public class SQType { static final int QUEUELEN=15; DATA4[] data=new DATA4[QUEUELEN];//队列数组 int head;//队列头 int tail;//队列尾 /** * 初始化队列 */ SQType SQTypeInit(){ SQType q; if((q=new SQType())!=null){ q.head=0;//设置队头 q.tail=0;//设置队尾 return q; }else{ return null; } } /** * 判断空队列 */ int SQTypeEmpty(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; } } /** * 入队列 */ int InSQType(SQType q,DATA4 data){ if(q.head==QUEUELEN){ System.out.println("队列已经满了,操作失败"); return 0; }else{ q.data[q.tail++]=data; return 1; } } /** * 出队列 */ DATA4 OutSQType(SQType q){ if(q.head==q.tail){ System.out.println("队列已经为空"); System.exit(0); }else{ return q.data[q.head++]; } return null; } /** * 读取结点 */ DATA4 PeekSQType(SQType q){ if(SQTypeEmpty(q)==1){ System.out.println("空队列"); return null; }else{ return q.data[q.head]; } } /** * 计算队列长度 */ int SQTypeLen(SQType q){ int temp; temp=q.tail-q.head; return temp; } }
看看就明白了,也就这么几句.
从这个代码学到了:
1.就是队列的一些基本操作
2.++a,a++。用的确实巧妙,如果是我自己,应该不会那么写的
3.数据情况、释放内存
越来越淡静了...在想想这段代码,确实写的好.
相关推荐
在给定的系统中,可能包含了这些操作的详细描述和实际代码实现,这对于理解和学习队列结构非常有帮助。 演示系统(EXE)允许用户直观地看到队列操作的过程,通过动画展示元素如何入队、出队以及队列状态的变化。...
"Java定义队列结构,并实现入队、出队操作完整示例" 本文主要介绍了Java定义队列结构,并实现入队、出队操作,结合完整实例形式分析了java数据结构中队列的定义、入队、出队、判断队列是否为空、打印队列元素等相关...
一个经典的C语言队列结构源程序,非常适合学习数据结构的朋友,当然,也适合初学者。
队列结构则包含对首节点、队尾节点的引用,以及队列的大小等信息。 在单链队列中,每个节点只有一个指向后继节点的指针。链队列的插入操作(入队)在队尾进行,这通常涉及更新队尾指针。删除操作(出队)则在队首...
在众多的数据结构中,队列是一种基础且重要的抽象数据类型(ADT,Abstract Data Type)。队列是一种线性数据结构,遵循“先进先出”(FIFO,First In First Out)的原则,类似于现实生活中的排队等待。在本文中,...
双缓存队列是一种特殊的队列结构,它可以解决在发送端持续向接收端发送数据包时,接收端在任何情况下停止响应可能产生数据丢失的问题。双缓存队列通过使用两个队列A和B,交替写入和读取数据,避免了数据丢失的问题。...
实验内容: 假设以数组 sequ[MaxSize]存放环形队列的元素,同时 Rear 和 Len 分别指示环形队列中队尾元素的位置和内含元素的个数。设计相应的入队和出队算法。
首先,我们需要定义一个队列结构。在C语言中,可以定义一个结构体类型,包含队首和队尾的指针,以及队列的容量和当前元素个数等信息: ```c typedef struct { int* data; // 存储元素的数组 int front; // 队首...
/*作者:一条傻龙 *名称:单链队列 *编译环境:vc++ 6.0 *使用语言:c *功能:构造一个空队列,销毁队列,插入,删除,队列的建立(无法构造多个队列) *最后修改时间:2010-10-30 09:36 */
本代码在visual studio enterprise 2015 测试通过,请用户自行调试。若在其它编译器上调试,请将里面的scanf_s改回scanf。
代码实现部分应该包括了队列结构的定义、初始化、入队、出队等函数的编写。通过阅读代码,可以深入理解C语言实现数据结构的具体细节。 ### 六、实践应用 队列在许多实际问题中都有应用,如操作系统中的进程调度、...
1. **初始化队列**:创建一个新的、空的队列结构。 2. **入队**(Enqueue):在队尾添加一个新元素。在C语言中,这通常通过改变队尾指针并更新元素来实现。 3. **出队**(Dequeue):移除队头的元素。这涉及更新队头...
双头共享队列是一种针对双CPU系统优化的数据结构,旨在解决传统简单队列在同一数据只能离队一次的问题,提高数据使用效率。在铁路信号系统等高安全、高可靠性的应用场景中,双CPU结构常用于确保系统的稳定性和安全性...
在编程领域,数据结构是构建高效算法的基础,而队列是一种基本的数据结构,它遵循“先进先出”(FIFO,First In First Out)的原则。Java作为一种强大的面向对象的编程语言,提供了多种方式来实现队列。在这个Java...
在提供的源代码中,你可以看到如何使用C++和C语言来实现这些队列结构。通过阅读和理解这些源代码,你将能够深入掌握队列的工作原理,并可能启发你在自己的项目中使用这些数据结构。同时,“www.pudn.com.txt”可能是...
#### 定义队列结构 ```cpp typedef struct { QElemType* base; int front; int rear; } SqQueue; ``` 这里定义了一个名为`SqQueue`的结构体,用于表示循环队列。其中: - `QElemType* base`:指向数组的指针,...
数据结构是计算机科学中的核心概念,它涉及...学习和掌握这些队列结构及其操作,对于提升编程能力和解决复杂问题具有重要意义。通过分析和实践这些示例代码,可以深入理解队列的工作原理,并能灵活运用到自己的项目中。
在数据结构中,队列是一种基本的线性数据结构,它遵循“先进先出”(First In First Out, FIFO)的原则。而在本题中,讨论的是双端队列(Double-Ended Queue, deque),它在队列的基础上增加了从两端进行插入和删除...
2. **队列结构**: 队列本身是一个容器,包含队头指针(front)和队尾指针(rear)。队头指针指向队列的第一个元素,而队尾指针指向最后一个元素的下一个位置。初始时,两者都为空。 3. **初始化队列**: 创建一...