`
Cb123456
  • 浏览: 66476 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

队列结构

阅读更多

  队列结构是一种常见的数据结构,从数据的逻辑结构来看是线性结构,从存储结构来说分顺序和链式存储。且队列的两个基本操作是入队列和出队列,在队头进行出队列操作,在队尾进行入队列操作.

 

 队列中操作的对象:

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.数据情况、释放内存

 

 越来越淡静了...在想想这段代码,确实写的好.

 

6
3
分享到:
评论

相关推荐

    队列结构及其算法动画演示系统

    在给定的系统中,可能包含了这些操作的详细描述和实际代码实现,这对于理解和学习队列结构非常有帮助。 演示系统(EXE)允许用户直观地看到队列操作的过程,通过动画展示元素如何入队、出队以及队列状态的变化。...

    Java定义队列结构,并实现入队、出队操作完整示例

    "Java定义队列结构,并实现入队、出队操作完整示例" 本文主要介绍了Java定义队列结构,并实现入队、出队操作,结合完整实例形式分析了java数据结构中队列的定义、入队、出队、判断队列是否为空、打印队列元素等相关...

    一种新的队列结构形式-双头共享队列.pdf

    为了解决这一问题,一种新型的队列结构——双头共享队列应运而生。这种结构不仅能够提升数据的利用效率,还能够增强系统的并行处理能力,尤其在像铁路信号系统这类对数据同步要求极高的应用中,它展示出了巨大的优势...

    C语言队列结构源程序

    一个经典的C语言队列结构源程序,非常适合学习数据结构的朋友,当然,也适合初学者。

    数据结构:链队列

    队列结构则包含对首节点、队尾节点的引用,以及队列的大小等信息。 在单链队列中,每个节点只有一个指向后继节点的指针。链队列的插入操作(入队)在队尾进行,这通常涉及更新队尾指针。删除操作(出队)则在队首...

    数据结构队列ADT

    在众多的数据结构中,队列是一种基础且重要的抽象数据类型(ADT,Abstract Data Type)。队列是一种线性数据结构,遵循“先进先出”(FIFO,First In First Out)的原则,类似于现实生活中的排队等待。在本文中,...

    C++数据结构与算法之双缓存队列实现方法详解

    双缓存队列是一种特殊的队列结构,它可以解决在发送端持续向接收端发送数据包时,接收端在任何情况下停止响应可能产生数据丢失的问题。双缓存队列通过使用两个队列A和B,交替写入和读取数据,避免了数据丢失的问题。...

    数据结构实验代码(C++)队列结构

    实验内容: 假设以数组 sequ[MaxSize]存放环形队列的元素,同时 Rear 和 Len 分别指示环形队列中队尾元素的位置和内含元素的个数。设计相应的入队和出队算法。

    数据结构 队列操作 C语言实现

    首先,我们需要定义一个队列结构。在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语言描述.rar

    代码实现部分应该包括了队列结构的定义、初始化、入队、出队等函数的编写。通过阅读代码,可以深入理解C语言实现数据结构的具体细节。 ### 六、实践应用 队列在许多实际问题中都有应用,如操作系统中的进程调度、...

    数据结构 队列

    1. **初始化队列**:创建一个新的、空的队列结构。 2. **入队**(Enqueue):在队尾添加一个新元素。在C语言中,这通常通过改变队尾指针并更新元素来实现。 3. **出队**(Dequeue):移除队头的元素。这涉及更新队头...

    Java队列实现,数据结构

    在编程领域,数据结构是构建高效算法的基础,而队列是一种基本的数据结构,它遵循“先进先出”(FIFO,First In First Out)的原则。Java作为一种强大的面向对象的编程语言,提供了多种方式来实现队列。在这个Java...

    djb.rar_C++_c 循环 队列_数据队列_链式队列_队列 数据结构

    在提供的源代码中,你可以看到如何使用C++和C语言来实现这些队列结构。通过阅读和理解这些源代码,你将能够深入掌握队列的工作原理,并可能启发你在自己的项目中使用这些数据结构。同时,“www.pudn.com.txt”可能是...

    数据结构 循环队列c++源代码

    #### 定义队列结构 ```cpp typedef struct { QElemType* base; int front; int rear; } SqQueue; ``` 这里定义了一个名为`SqQueue`的结构体,用于表示循环队列。其中: - `QElemType* base`:指向数组的指针,...

    数据结构队列相关算法.zip

    数据结构是计算机科学中的核心概念,它涉及...学习和掌握这些队列结构及其操作,对于提升编程能力和解决复杂问题具有重要意义。通过分析和实践这些示例代码,可以深入理解队列的工作原理,并能灵活运用到自己的项目中。

    16337341_朱志儒_数据结构作业(二)_队列结构习题(更新)1

    在数据结构中,队列是一种基本的线性数据结构,它遵循“先进先出”(First In First Out, FIFO)的原则。而在本题中,讨论的是双端队列(Double-Ended Queue, deque),它在队列的基础上增加了从两端进行插入和删除...

    队列链式结构

    2. **队列结构**: 队列本身是一个容器,包含队头指针(front)和队尾指针(rear)。队头指针指向队列的第一个元素,而队尾指针指向最后一个元素的下一个位置。初始时,两者都为空。 3. **初始化队列**: 创建一...

Global site tag (gtag.js) - Google Analytics