7月9日10日 总结(数组和队列)
这几天讲了数组和队列。
1、数组的创建
1.1定义 类型[] 数组变量名 = new 类型[长度];
1.2数组的长度在定义的时候就确定,固定不变。
2、数组类型
2.1原始类型,默认值是0;
2.2对象类型,Object[] obj = new Object[10];
3、队列:数组长度是固定的,但队列的长度是可变的。
4、创建队列类,存入数据,取出
向队列中加入一个对象:
public void add(MyShape m){
//1.先创建一个新数组,长度为原数组+1
MyShape[] nms=new Myshape[ms.length+1];
//2.把原数组放置到新数组中
(for int i=0;i<ms.length;i++){
nms[i]=ms[i];
}
//3.将要放入的元素放到新数组的最后一个格子内
nms[nms.length-1]=m;
//4.让原数组指向新数组
ms=nms;
}
下面是我写的练习:队列的插入和删除操作,并集操作,交集操作等。
package zyf_0712; public class Duilie { //程序入口 public static void main(String[] args) { int length,index,n; length = 5; index = 2; n=9; //队列的插入(在长为length的数组里,索引为index的位置之前插入数n) //创建一个数组 int[] a = new int[length]; //给数组赋值 System.out.print("原数组a为"); for(int i=0;i<a.length;i++){ a[i]=i+1; System.out.print(a[i]+" "); } System.out.println(); //创建一个新数组 int[] b = new int[length+1]; for(int i=0;i<index;i++){ b[i]=a[i]; } b[index]=n; for(int i=index+1;i<b.length;i++){ b[i]=a[i-1]; } a=b; System.out.print("插入之后的数组b为"); for(int i=0;i<b.length;i++){ System.out.print(b[i]+" "); } System.out.println(); //队列的删除(删除索引为index的数) int[] c=new int[length]; for(int i=0;i<index;i++){ c[i]=b[i]; } for(int i=index;i<c.length;i++){ c[i]=b[i+1]; } b=c; System.out.print("删除之后的数组c为"); for(int i=0;i<c.length;i++){ System.out.print(c[i]+" "); } System.out.println(); //队列的并集 //创建一个数组e,求该数组与c数组的并集 int[] e = new int[length]; for(int i=0;i<e.length;i++){ e[i]=i+2; } // k=0; //创建一个数组,用于存储求出的并集 int[] d= new int[2*length]; int k=0; for(int i=0;i<c.length;i++){ d[i]=c[i]; } //依次取出e中的数与c for(int i=0;i<e.length;i++){ for(int j=0;j<c.length;j++){ if(e[i]!=c[j]){ if(j==c.length-1){ d[e.length+k]=e[i]; k=k+1; } } if(e[i]==c[j]) break; } } System.out.print("c数组与数组{2,3,4,5,6}合并之后的数组d为"); for(int i=0;i<d.length;i++){ if(d[i]!=0) System.out.print(d[i]+" "); } System.out.println(); //队列的交集(数组c与数组{2,3,4,5,6}的交集) int[] f = new int[length]; int q=0; for(int i=0;i<c.length;i++){ for(int j=0;j<e.length;j++){ if(c[i]==e[j]){ f[q]=c[i]; q++; break; } } } System.out.print("c数组与数组{2,3,4,5,6}的交集数组f为"); for(int i=0;i<f.length;i++){ if(f[i]!=0){ System.out.print(f[i]+" "); } } } }
相关推荐
本文介绍了一种改进的基于数组实现的队列结构,重点在于通过引入`tag`标记来优化队列的状态判断逻辑,从而提高队列操作的准确性和效率。这种方法不仅解决了传统队列实现中的边界问题,也提供了一种更加通用和高效的...
数据结构是计算机科学中至关重要的基础概念...总结来说,数组、栈和队列是数据结构的基础,理解它们的概念和操作对于理解和设计复杂的算法至关重要。在实际编程中,灵活运用这些数据结构可以提高程序的效率和可维护性。
在本篇文章中,我们不仅介绍了队列的基本概念和操作,还提供了一个简单的示例程序来展示队列的数组实现。虽然这种方法简单有效,但在更复杂的应用场景下可能需要考虑更多的因素,比如队列的动态调整、异常处理等。...
当队列中的元素被不断加入和移除后,队首指针(head)和队尾指针(tail)会逐渐向前移动,直至达到数组末尾。在传统的队列实现中,当尾指针到达数组末尾时,若此时队列并未真正满载,则会出现无法继续入队的情况。而...
总结而言,循环链表队列和循环数组队列各有优势,选择哪种实现方式取决于具体的应用场景和性能需求。链表队列在动态调整队列大小时更为灵活,而数组队列在固定大小的情况下,能够提供更好的空间效率和访问速度。
无论是通过数组还是链表实现,队列都能有效地帮助我们管理和控制数据的流动,特别是在需要遵循特定顺序或限制并发访问的场景下。深入理解队列的工作原理和实现方式,对于提高软件开发效率和解决实际问题具有重要意义...
相比于传统的队列,循环队列利用数组的循环特性,避免了队列满或空时需要重新分配内存的问题,提高了空间利用率和操作效率。在本文中,我们将深入探讨循环队列的概念、实现方式以及其优缺点。 ### 循环队列概念 ...
总结一下,C++中的循环队列可以通过数组和链表两种方式实现,每种实现都有其特点。数组实现访问速度快,但处理满队列和空队列需要特殊考虑;链表实现插入和删除操作灵活,但访问速度较慢。模板机制使得循环队列可以...
总结来说,栈、队列和数组是编程中基础且重要的数据结构,理解它们的概念和实现方式对于编写高效代码至关重要。栈用于回溯、表达式求解、括号匹配等问题,队列用于任务调度、缓冲区管理等,数组则常作为基础结构用于...
1. **顺序存储结构**:栈和队列的顺序存储是通过数组来实现的。对于栈,数组的一端作为栈底,另一端作为栈顶,元素依次添加和删除。当栈满时,如果再尝试入栈就会导致上溢;当栈空时,尝试出栈会引发下溢。在顺序栈...
- **链表的优势**:适合需要频繁进行插入和删除操作的应用场景,如任务队列管理等。 - **链表的劣势**:查询效率低,不适合需要频繁查询数据的场景。 #### 关于顺序表的改进 对于基于数组的顺序表,可以通过引入...
总结,队列作为一种基础数据结构,有链式和数组式两种主要实现方式,每种都有其特点和适用场景。链式队列适合于动态变化的元素数量,而数组式队列则提供了一种简洁且效率较高的解决方案。在C++中,我们可以通过...
总结来说,“基于STM32串口环形队列”的设计旨在提升串口通信的效率和可靠性,通过合理利用内存资源和中断处理机制,实现高效的数据收发。byte_queue-master项目提供了一个实用的模板,开发者可以在此基础上根据具体...
在JavaScript中实现队列数据结构主要有两种方式:使用数组和使用对象。本篇文档将探讨如何使用数组来实现一个队列,并展示它的基本操作,如添加元素、删除元素、读取队首和队尾元素等。 ### 队列的概念与特点 队列...
总结起来,线性表、堆栈和队列是数据结构的基础,它们在算法设计和程序实现中有着广泛应用。理解并掌握这些概念,以及如何在C++中实现它们,对于提升编程技能和解决实际问题至关重要。通过实践和学习,我们可以更好...
链表还适用于实现某些特定的数据结构,如堆栈、队列和图形数据结构。 在编程语言中,数组通常被内置支持,易于理解和使用,而链表则通常需要通过指针和结构体等概念来实现,相对复杂。但考虑到其灵活性,链表在处理...
在顺序存储结构中,栈和队列可以使用数组来实现。栈的顺序存储有“后进先出”的特点,即最后一个入栈的元素将是第一个出栈的元素。队列的顺序存储也有“先进先出”的特点,即第一个入队的元素将是第一个出队的元素。...
在实际开发中,你可以通过打开这个Xcode工程,查看和运行代码,以更深入地理解静态数组队列的实现。 总结,C语言中的静态数组提供了一种简单且高效的方式来存储固定数量的数据。利用静态数组实现队列,可以学习到...
实验总结中,学生应分析实现过程中遇到的问题、解决策略,以及对栈和队列操作的感想,进一步巩固理论知识,提升编程能力。同时,也可以反思实验过程中的不足,提出改进方法,为后续学习和实践提供参考。
本篇文章将对几种常见的队列进行深入的总结和探讨。 首先,我们来看最基本的**线性队列**,也称为顺序队列。线性队列在内存中通常是通过数组实现的,它的入队操作在队尾进行,出队操作在队头进行。当队列满时,可以...