Very cool

This commit is contained in:
linly
2022-05-10 16:22:22 +02:00
parent 01ec261908
commit 2b4d48fb93
2 changed files with 136 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
package ScuffedLinkedList;
import java.util.Arrays;
import java.util.Queue;
import java.util.Stack;
public class LetterQ
{
int rear,front;
public int[] buffer;
LetterQ()
{
this(10);
}
LetterQ(int size)
{
buffer = new int[size];
rear = -1;
front = 0;
}
public void enqueue(int value)
{
if(rear < buffer.length)
buffer[++rear] = value;
else
System.out.println("Queue full!");
}
public int dequeue()
{
if(rear == -1) {
System.out.println("Queue Empty!");
buffer = new int[buffer.length];
}
else
{
System.out.println(buffer[0]);
buffer[0] = 0;
shift();
rear--;
}
return buffer[0];
}
public void shift() {
Stack<Integer> temp = new Stack<>();
for (int i = buffer.length-1; i > -1; i--)
{
if (buffer[i] != 0)
temp.push(buffer[i]);
}
for (int i = 0; i < buffer.length ; i++)
if(!temp.isEmpty())
buffer[i] = temp.pop();
else
break;
}
public static Queue SearchNDestroy(Queue<Integer> container, int target)
{
int temp;
Stack<Integer> buffer = new Stack<>();
while(!container.isEmpty())
{
temp = container.poll();
if(temp != 0 && temp != target) {
buffer.push(temp);
}
}
while(!buffer.isEmpty())
container.offer(buffer.pop());
return container;
}
@Override
public String toString()
{
return Arrays.toString(buffer);
}
}

View File

@@ -0,0 +1,43 @@
package ScuffedLinkedList;
import org.junit.jupiter.api.Test;
import java.util.Queue;
import static org.junit.jupiter.api.Assertions.*;
class LetterQTest {
public static LetterQ Quii = new LetterQ();
@Test
void enqueue() {
Quii.enqueue(10);
assertEquals(10,Quii.buffer[0]);
}
@Test
void dequeue() {
System.out.println(Quii);
Quii.enqueue(1);
Quii.enqueue(12);
Quii.enqueue(123);
Quii.enqueue(1234);
Quii.enqueue(1245);
System.out.println(Quii);
Quii.dequeue();
Quii.dequeue();
Quii.dequeue();
Quii.dequeue();
Quii.dequeue();
Quii.dequeue();
System.out.println(Quii);
}
@Test
void shift() {
int[] test = {1,2,3,4,5,6};
}
}