From 2b4d48fb93662f8dd6ea0dfeaefde1dd22bbfc07 Mon Sep 17 00:00:00 2001 From: linly Date: Tue, 10 May 2022 16:22:22 +0200 Subject: [PATCH] Very cool --- src/ScuffedLinkedList/LetterQ.java | 93 ++++++++++++++++++++++++++ src/ScuffedLinkedList/LetterQTest.java | 43 ++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 src/ScuffedLinkedList/LetterQ.java create mode 100644 src/ScuffedLinkedList/LetterQTest.java diff --git a/src/ScuffedLinkedList/LetterQ.java b/src/ScuffedLinkedList/LetterQ.java new file mode 100644 index 0000000..dac1240 --- /dev/null +++ b/src/ScuffedLinkedList/LetterQ.java @@ -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 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 container, int target) + { + int temp; + Stack 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); + } + +} + + + diff --git a/src/ScuffedLinkedList/LetterQTest.java b/src/ScuffedLinkedList/LetterQTest.java new file mode 100644 index 0000000..fddcdb0 --- /dev/null +++ b/src/ScuffedLinkedList/LetterQTest.java @@ -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}; + + + } +} \ No newline at end of file