commit 0d6c151e53e8b88ae6ffa1580e484de43da54b82 Author: Sobottasgithub Date: Mon Dec 15 08:55:16 2025 +0100 Init Queue diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8ebfdec --- /dev/null +++ b/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + ps.edu + Queue2 + 1.0-SNAPSHOT + + + 23 + 23 + UTF-8 + + + \ No newline at end of file diff --git a/src/main/java/ps/edu/GenericClass.java b/src/main/java/ps/edu/GenericClass.java new file mode 100644 index 0000000..fc9488e --- /dev/null +++ b/src/main/java/ps/edu/GenericClass.java @@ -0,0 +1,13 @@ +package ps.edu; + +public class GenericClass { + String name; + + public GenericClass(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/ps/edu/Held.java b/src/main/java/ps/edu/Held.java new file mode 100644 index 0000000..0c91759 --- /dev/null +++ b/src/main/java/ps/edu/Held.java @@ -0,0 +1,13 @@ +package ps.edu; + +public class Held { + private String name = ""; + + public Held(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/ps/edu/Main.java b/src/main/java/ps/edu/Main.java new file mode 100644 index 0000000..3ceb628 --- /dev/null +++ b/src/main/java/ps/edu/Main.java @@ -0,0 +1,30 @@ +package ps.edu; + +public class Main { + public static void main(String[] args) { + Queue queue = new Queue(); + + Held held = new Held("Hero"); + Held held1 = new Held("Hero1"); + Held held2 = new Held("Hero2"); + Held held3 = new Held("Hero3"); + GenericClass genericClass = new GenericClass("Generic"); + + System.out.println(queue.isEmpty()); + queue.enqueue(held); + System.out.println(queue.size()); + queue.enqueue(held1); + queue.enqueue(held2); + queue.enqueue(held3); + queue.enqueue(genericClass); + System.out.println(queue.peek()); + System.out.println(queue.size()); + System.out.println(queue.dequeue()); + System.out.println(queue.dequeue()); + System.out.println(queue.dequeue()); + System.out.println(queue.dequeue()); + System.out.println(queue.dequeue()); + + + } +} \ No newline at end of file diff --git a/src/main/java/ps/edu/Queue.java b/src/main/java/ps/edu/Queue.java new file mode 100644 index 0000000..46f7819 --- /dev/null +++ b/src/main/java/ps/edu/Queue.java @@ -0,0 +1,75 @@ +package ps.edu; + +public class Queue { + private class Node { + private T content = null; + private Node nextNode = null; + + private void setContent(T content) { + this.content = content; + } + + private T getContent() { + return this.content; + } + + private void setNextNode(Node nextNode) { + this.nextNode = nextNode; + } + + private Node getNextNode() { + return this.nextNode; + } + } + + private Node head = null; + private Node tail = null; + private int count = 0; + + public void enqueue(Object content) { + Node node = new Node(); + node.setContent(content); + + if (head == null) { + head = node; + tail = node; + } else { + tail.setNextNode(node); + tail = node; + } + count++; + } + + public Object dequeue() { + if (!isEmpty()) { + Object content = head.getContent(); + if (head != tail) { + head = head.getNextNode(); + } else { + head = null; + tail = null; + } + count--; + return content; + } + return null; + } + + public boolean isEmpty() { + if (head == null) { + return true; + } + return false; + } + + public Object peek() { + if (head != null) { + return head.getContent(); + } + return null; + } + + public int size() { + return count; + } +}