线性结构(二)---队列

 1 //队列
 2 public class MyQueue {
 3
 4     int[] elements;
 5
 6     public MyQueue(){
 7         elements=new int[0];
 8     }
 9
10     //入队
11     public void add(int element){
12         //创建一个新的数组
13         int[] newarr=new int[elements.length+1];
14         //把原数组中的元素赋值到新数组中
15         for(int i=0;i<elements.length;i++){
16             newarr[i]=elements[i];
17         }
18         //把添加的元素放入新数组中
19         newarr[elements.length]=element;
20         //使用新数组替换旧数组
21         elements=newarr;
22     }
23     //出队
24     public int poll(){
25         //把第一个元素拿出
26         int element=elements[0];
27         //创建新数组
28         int[] newarr=new int[elements.length-1];
29         for(int i=0;i<newarr.length;i++){
30             newarr[i]=elements[i+1];
31         }
32         //替换数组
33         elements=newarr;
34         //返回队列首元素
35         return element;
36     }
37     //判断队列是否为空
38     public boolean isEmpty(){
39         return elements.length==0;
40     }
41 }

原文地址:https://www.cnblogs.com/axu521/p/9963366.html

时间: 2024-11-09 10:41:58

线性结构(二)---队列的相关文章

线性结构 —— 数组队列

一.介绍 ?队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头. 二.代码 ?使用数组模拟队列,首先编写一个ArrayQueue类 class ArrayQueue { private int maxSize; // 最大容量 private int front; // 指向队列头 private int rear; // 指向队列尾 p

线性结构之链队列实现

#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct node { int data; struct node *next; }NODE,*PNODE; typedef struct queue { PNODE front; PNODE rear; }QUEUE; void initQueue(QUEUE *); void enQueue(QUEUE *,int); void deQ

线性结构(二)--数组

1.将数组转换成面向对象的数组 2.使用线性查找 3.使用二分法查找 一.数组: public class MyArray { //用于存储数据的数组 private int[] elements; //实例对象时,创建数组 public MyArray(){ elements=new int[0]; } //获取数组长度的方法 public int size(){ return elements.length; } //往数组的末尾添加一个元素 public void add(int elem

数据结构和算法-数据结构-线性结构-栈和队列

 ################################################## """ 三.线性结构 (1)栈 1.定义:栈是一个数据集合,可以理解为只能在一端进行插入或者删除操作的列表. 2.栈的特点:后进先出(last-in,first-out),简称LTFO表 这种数据结构的特点: 就是像是杯子或者是弹夹,电梯, 存储的时候从底部开始,读取的时候从顶部开始,具备这种特点就是栈 就是后进先出, 存储的时候就可以从顺序表或者链表就可以实现, 只让从一

数据结构 线性结构(数组[列表] ,链表 单链表的增删改查**, 线性结构的应用 队列 栈[函数的调用**]),非线性结构 树

数据结构 参考:http://lupython.gitee.io/ 线性结构 就是能够用一根线串起来的数据结构 数组 (列表) 问:申请数组的前提条件是啥? a[12]?内存需要满足的条件? 答:内存必须有一块连续的内存空间 int a[7] : 声明一个数组,这个数组的数组名是 a, 数组的大小是 7, 数组元素的类型是整型. int a[7] = array(1,2,3,4,5,6,7) 问:如何申请内存? 答:C,C++语言,申请:mallco (28).释放:free(28) 问:int

数据结构1 线性结构

数据结构是指数据元素的结合及元素间的相互关系和构造方法.元素之间的相互关系是数据的逻辑结构,元素关系的存储形式成为存储结构.数据结构按照逻辑关系的不同分为线性结构和非线性结构两大类.其中线性结构是最基本的结构,元素顺序排列,常见的有线性表.栈.队列.数组.串. 一.线性表 1.线性表是最简单也是最常用的一种线性结构.一个线性表示n(n>=0)个元素的有限序列,非空线性表的特点为: 存在唯一的一个"第一个"元素: 存在唯一的一个"最后一个"元素: 除第一个元素外

算法--线性结构

一.数据结构 什么是数据结构:数据与数据之间的关系. 数据的存储结构:顺序存储(ArrayList).链式存储(LinkList). 数据的逻辑结构:集合结构.线性结构.树形结构.图形结构. 二.算法 算法:解决问题的方法. 算法的特性:输入.输出.有穷.确定性.可行性. 算法的基本要求:正确性.可读性.健壮性.时间复杂度.空间复杂度. 三.线性结构 1.数组 普通数组:类似Java基本类型数组 对象数组:类似ArrayList在对象里面定义一个数组类型的成员变量. 数组中的算法:线性查找和二分

常见的线性结构

目录 前言 数组 数组介绍 自定义数组 实现数组的增删改查方法 动态数组 时间复杂度分析 栈 栈介绍 定义栈接口 基于数组实现栈的基本操作 使用栈实现"括号匹配"问题 队列 队列介绍 定义队列接口 数组队列 循环队列 数组队列和循环队列的性能比较 链表:最基础的动态数据结构 链表介绍 实现链表的增删改查操作 通过自定义链表实现栈 通过自定义链表实现队列 递归 前言 ??本篇博客主要是记录手写这些这数据结构的底层实现,加深对线性结构的理解,实现自己的一个小型数据结构库,也会进行简单的时间

线性结构和非线性结构

线性结构和非线性结构同属于数据结构中的逻辑结构类型 线性结构是指该结构中的节点之间存在一对一的关系.其特点是开始节点和终端节点都是唯一的,除了开始节点和终端节点外,其余节点都有且仅有一个直接前驱,有且仅有一个直接后继.此类型的存储结构有:顺序表(数组).链表.堆栈结构.队列结构等 非线性结构又包括集合.树形结构.图形结构或网状结构,特点是数据元素之间存在一个对多个或多个对多个的关系,其中集合是一种关系极为松散的结构.

2、线性结构——数据结构【基础篇】

线性结构 线性结构的4大特点: 1.有一个结点只有前驱 2.有一个结点只有后继 3.其他结点既有一个前驱也有一个后继 4.在逻辑上相邻在物理上也相邻数据的逻辑关系叫做线性结构 线性结构的3大类型: 1.线性表--线性表是n个数据元素的有限序列 存储结构: 顺序存储对应一组操作:顺序表 链式存储对应一组操作:单向链表.双向链表.循环链表 2.栈--限定只在表的一端(表尾)进行插入和删除操作的线性表:允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),其这一端被固定了. 存储结构