Qeueu
parent
e5d61482f6
commit
b84ed6ce96
|
@ -0,0 +1 @@
|
|||
,OBAI/obaya,obai,21.09.2024 22:26,file:///C:/Users/obaya/AppData/Roaming/LibreOffice/4;
|
|
@ -0,0 +1,63 @@
|
|||
package QueueStructure.CircularQueue_UsingArray;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import QueueStructure.MyQueue;
|
||||
|
||||
class JTest {
|
||||
MyCircularQueue<Integer> test;
|
||||
|
||||
@BeforeEach
|
||||
void erstelle_List() {
|
||||
test = new MyCircularQueue<>(6);
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_Enqueue() throws MyException {
|
||||
|
||||
assertEquals(1,test.enqeueu(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_getFront() throws MyException {
|
||||
test.enqeueu(4);
|
||||
test.enqeueu(2);
|
||||
test.enqeueu(6);
|
||||
assertEquals(4,test.getFront());
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_getRear() throws MyException {
|
||||
test.enqeueu(4);
|
||||
test.enqeueu(2);
|
||||
test.enqeueu(6);
|
||||
assertEquals(6,test.getRear());
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_dequeue() throws MyException {
|
||||
test.enqeueu(4);
|
||||
test.enqeueu(2);
|
||||
test.enqeueu(6);
|
||||
assertTrue(test.dequeue());
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_clear() throws MyException {
|
||||
test.enqeueu(4);
|
||||
test.enqeueu(2);
|
||||
test.enqeueu(6);
|
||||
assertTrue(test.clear());
|
||||
}
|
||||
|
||||
@Test
|
||||
void test_getSize() throws MyException {
|
||||
|
||||
test.enqeueu(6);
|
||||
assertEquals(1,test.getsize());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package QueueStructure.CircularQueue_UsingArray;
|
||||
|
||||
public class MyCircularQueue <T> {
|
||||
|
||||
private T wert;
|
||||
private T arr[];
|
||||
private int erst;// oder (Head, first, begin)
|
||||
private int last; // oder (back,last,tail,end)
|
||||
private int size;
|
||||
|
||||
private int zaeler = 0; // checke für die länge meiner Queue
|
||||
|
||||
MyCircularQueue(int size) {
|
||||
this.size = size;
|
||||
arr =(T[]) new Object[size];
|
||||
initi_werte();
|
||||
}
|
||||
|
||||
public void initi_werte() {
|
||||
erst = -1;
|
||||
last = -1;
|
||||
}
|
||||
|
||||
public T enqeueu(T value) throws MyException{
|
||||
|
||||
this.wert = value;
|
||||
if(isEmpty())
|
||||
erst++;
|
||||
|
||||
zaeler++;
|
||||
last = (last + 1) % size;
|
||||
arr[last] = value;
|
||||
|
||||
return arr[last];
|
||||
}
|
||||
|
||||
public boolean dequeue() {
|
||||
if(isEmpty())
|
||||
return false;
|
||||
|
||||
zaeler--;
|
||||
erst = (erst + 1) % size;
|
||||
erst++;
|
||||
return true;
|
||||
}
|
||||
|
||||
public T getFront()throws MyException {
|
||||
if(isEmpty())
|
||||
throw new MyException("Queue ist leer");
|
||||
|
||||
return arr[erst];
|
||||
}
|
||||
|
||||
public T getRear()throws MyException {
|
||||
if(isEmpty())
|
||||
throw new MyException("Queue ist leer");
|
||||
|
||||
return arr[last];
|
||||
}
|
||||
|
||||
public boolean isFull() {
|
||||
return last >= arr.length - 1;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return erst == -1 && last == -1;
|
||||
}
|
||||
|
||||
public boolean clear() {
|
||||
if (!isEmpty()) {
|
||||
initi_werte();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getsize() {
|
||||
if (isEmpty())
|
||||
return -1;
|
||||
|
||||
return zaeler;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package QueueStructure.CircularQueue_UsingArray;
|
||||
|
||||
public class MyException extends Exception {
|
||||
|
||||
MyException(String fheler){
|
||||
super(fheler);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package QueueStructure;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class JTest {
|
||||
|
||||
MyQueue test;
|
||||
|
||||
@BeforeEach
|
||||
void erstelle_List() {
|
||||
test = new MyQueue(5);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_Enqueue() throws MyException {
|
||||
|
||||
|
||||
assertEquals(10,test.enqueue(10));
|
||||
assertEquals(120,test.enqueue(120));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_isfull() throws MyException {
|
||||
test.enqueue(10);
|
||||
test.enqueue(10);
|
||||
test.enqueue(10);
|
||||
test.enqueue(10);
|
||||
test.enqueue(10);
|
||||
assertTrue(test.isFull());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_isempty() throws MyException {
|
||||
|
||||
assertTrue(test.isEmpty());
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package QueueStructure;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws MyException {
|
||||
MyQueue test = new MyQueue(5);
|
||||
try {
|
||||
test.enqueue(10);
|
||||
test.enqueue(120);
|
||||
test.enqueue(140);
|
||||
test.enqueue(140);
|
||||
test.enqueue(140);
|
||||
|
||||
test.printAll();
|
||||
} catch (MyException e) {
|
||||
System.out.println(e.toString() + e.getClass());
|
||||
}
|
||||
System.out.println(3 % 5);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package QueueStructure;
|
||||
|
||||
public class MyException extends Exception {
|
||||
|
||||
MyException(String fheler){
|
||||
super(fheler);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package QueueStructure;
|
||||
|
||||
public class MyQueue {
|
||||
int wert;
|
||||
int erst;
|
||||
int last;
|
||||
int arr[];
|
||||
|
||||
MyQueue(int size) {
|
||||
arr = new int[size];
|
||||
erst = -1;
|
||||
last = -1;
|
||||
}
|
||||
|
||||
public int enqueue(int value) throws MyException {
|
||||
if (isFull())
|
||||
throw new MyException ("Kein Platz mehr in der Queue");
|
||||
this.wert = value;
|
||||
|
||||
if (erst == -1)
|
||||
erst++;
|
||||
|
||||
last++;
|
||||
arr[last] = wert;
|
||||
return arr[last];
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void deqeue() throws MyException {
|
||||
if (isEmpty())
|
||||
throw new MyException ("Queue ist leer!");
|
||||
|
||||
if (erst == last) {
|
||||
erst = -1;
|
||||
last = -1;
|
||||
return;
|
||||
}
|
||||
erst++;
|
||||
|
||||
}
|
||||
|
||||
public int peek() throws MyException {
|
||||
if (isEmpty())
|
||||
throw new MyException ("Queue ist leer!");
|
||||
|
||||
return arr[erst];
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return last == -1 && erst == -1;
|
||||
}
|
||||
|
||||
public boolean isFull() {
|
||||
return last >= arr.length-1;
|
||||
}
|
||||
|
||||
|
||||
public void printAll() throws MyException {
|
||||
if (isEmpty())
|
||||
throw new MyException ("Queue ist leer!");
|
||||
System.out.print("[");
|
||||
for (int i = erst; i < last; i++)
|
||||
System.out.print(arr[i] + " ");
|
||||
|
||||
System.out.print("]");
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue