Uma pilha
Stack é um passado-out estrutura de dados. Quando a ordem não é o conceito esotérico, um monte de coisas quando você quer colocar em um recipiente, quando você quer tirar, de acordo com o que é colocado na última tirada em primeiro lugar, devemos pensar da pilha.
A analogia de uma pilha de dados livro analogia caixa de pilha. Agora as caixas vazias para colocar o livro, o primeiro livro a ser colocado na parte inferior da caixa, isto é, em seguida, colocar o segundo, terceiro .... presente Ao remover um livro da caixa, primeiro remova a parte superior deve ser o livro (o último lançamento do livro, em vez de colocar o início do livro). A figura é mostrado no esquema de processo de um elemento na pilha.
Esta pilha será alcançado por um código Java estrutura de dados (implementadas utilizando agregados).
Escreva suas categorias MyStack.java:
public class MyStack {
//使用数组来实现栈,声明一个数组
int[] Arr;
//构造方法
public MyStack() {
Arr = new int[0];
}
//压入元素的方法push
public void push(int element) {
//创建一个新数组
int[] newArr = new int[Arr.length+1];
//将原数组的元素赋值到新数组
for(int i=0; i<Arr.length; i++) {
newArr[i] = Arr[i];
}
//将新增加的元素放入新数组中
newArr[Arr.length] = element;
//使用新数组替换原数组
Arr = newArr;
}
//取出栈顶元素
public int pop() {
//若栈中没有元素,则取出的元素的下标为0-1=-1,超出下标界限。因此要抛出异常
if(Arr.length == 0) {
throw new RuntimeException("下标越界");
}
//取出数组中最后一个元素
int element = Arr[Arr.length-1];
//创建一个新的数组
int[] newArr = new int[Arr.length-1];
//将原数组中除最后一个元素以外的其他元素复制到新数组
for(int i=0; i<Arr.length-1; i++) {
newArr[i] = Arr[i];
}
//将新数组替换原数组
Arr = newArr;
//返回栈顶元素
return element;
}
//查看栈顶元素
public int look() {
//将数组中最后一个元素返回
return Arr[Arr.length-1];
}
//判断栈是否为空
public boolean isEmpty() {
return Arr.length==0;
}
}
Escrever classes de teste TestStack:
public class TestStack {
public static void main(String[] args) {
//创建一个栈
MyStack ms = new MyStack();
//向栈中压入数据
ms.push(1);
ms.push(2);
ms.push(3);
//查看栈顶元素
System.out.println(ms.look());
//取出栈顶元素
System.out.println(ms.pop());
System.out.println(ms.pop());
//判断栈是否为空
System.out.println(ms.isEmpty());
}
}
Em segundo lugar, a fila
Filas e a pilha oposto, a pilha é uma última fora estrutura de dados, e a fila é uma FIFO estrutura de dados. A razão pela qual esta estrutura de dados chamada de fila, porque essa estrutura é a mesma que a fila, se a fila está agora passando por uma porta, deve estar no topo de pessoas (para inserir fila de dados) ir primeiro. A figura seguinte mostra a configuração esquemática da fila:
Vamos fila (implementadas usando matrizes) usando o código java.
Escreva suas categorias MyQueue.java:
public class MyQueue {
int[] Arr;
public MyQueue() {
Arr = new int[0];
}
//入队
public void add(int element) {
//创建一个新数组
int[] newArr = new int[Arr.length+1];
//将原数组的元素赋值到新数组
for(int i=0; i<Arr.length; i++) {
newArr[i] = Arr[i];
}
//将新增加的元素放入新数组中
newArr[Arr.length] = element;
//使用新数组替换原数组
Arr = newArr;
}
//取出队列元素
public int poll() {
//取出数组中第1个元素
int element = Arr[0];
//创建一个新的数组
int[] newArr = new int[Arr.length-1];
//将原数组中除第一个元素以外的其他元素复制到新数组
for(int i=0; i<newArr.length; i++) {
newArr[i] = Arr[i+1];
}
//将新数组替换原数组
Arr = newArr;
//返回队列中的元素
return element;
}
//判断栈是否为空
public boolean isEmpty() {
return Arr.length==0;
}
}
Em seguida, escreva classes de teste TestQueue.java:
public class TestQueue {
public static void main(String[] args) {
//创建一个队列
MyQueue mq = new MyQueue();
//将元素入队
mq.add(1);
mq.add(2);
mq.add(3);
mq.add(4);
//出队
System.out.println(mq.poll());
//判断队列是否为空
System.out.println(mq.isEmpty());
}
}