Sunteți pe pagina 1din 8

NAMA: SAIHUL AMRI BUYUT ACHMARAIN

NIM: F1D017078
KELOMPOK 8
1. Stack
a. Source code
//saihul
import java.util.Scanner;
class Node{
int data;
Node next;
Node prev;
Node (int data){
this.data = data;
}
}
class Stack{
Node head, tail;
public void Push (int data){
Node list = new Node(data);
if (head==null){
head=list;
tail=list;
}
else{
tail.next=list;
list.prev=tail;
tail=list;
}
}
public void Pop(){
Node temp=tail.prev;
if (tail==null)
System.out.println("Kuburan ini kosong");
else{
temp.next=null;
tail.prev=null;
tail=temp;
}
}
public void show(){
Node current = head;
if (current==null){
System.out.println("Kuburan ini kosong");
}
else{
System.out.println();
while (current!=null){
System.out.print(" ["+current.data+"] ");
current = current.next;
}
System.out.println();
}
}
public void printreverse(){
Node current = tail;
if (current==null){
System.out.println("Kuburan ini kosong");
}
else{
System.out.println();
while (current!=null){
System.out.print(" ["+current.data+"] ");
current = current.prev;
}
System.out.println();
}
}
public static void main (String[] args){
Stack qu = new Stack();
Scanner Dinamis = new Scanner(System.in);
System.out.println();
int i,n=0;
int[] cin = new int[20];
for (i = 0;i<cin.length;i++){
System.out.println("Nomer Mayat ke-"+(i+1)+" ");
/*cin[i]=i+1; bisa diubah menjadi
cin[i]=Dinamis.nextInt(); */
cin[i]=i+1;
qu.Push(cin[i]);
cin[i]='\0';
}
System.out.println("\nSetelah kuburan diisi");
qu.printreverse();
for (i = 0; i<=(20-10); i++){
cin[i]=qu.tail.data;
qu.Pop();
n++;
}
n--;
System.out.println("\nSetelah kuburan digali");
qu.show();
for (i = 0;i<n;i++)
qu.Push(cin[i]);
System.out.println("\nSetelah kuburan diisi kembali");
qu.show();
System.out.println();
System.out.println("Selesai");
}
}

b. Hasil run
2. Queue
a. Sourde code

//Saihul
import java.util.Scanner;
class Node{
Node prev;
Node next;
int data;
Node (int data){
this.data=data;
}
}
public class Queue{
Node head, tail;
public void enqueue (int data){
Node list = new Node(data);
if (head==null){
head=list;
tail=list;
}
else{
tail.next=list;
list.prev=tail;
tail=list;
}
}
public void dequeue(){
Node temp=head.next;
if (head==null)
System.out.println("Antrian kosong");
else{
head.next=null;
temp.prev=null;
head=temp;
}
}
public void show(){
Node current = head;
int batas=1;
if (current==null){
System.out.println("Antrian kosong");
}
else{
System.out.println();
while (current!=null){
if (current.data<10)
System.out.print("
[0"+current.data+"] ");
else
System.out.print("
["+current.data+"] ");
if (batas%10==0)
System.out.println("\n");
current = current.next;
batas++;
}
System.out.println();
}
}
public void deleteall(){
head=null;
tail=null;
}

public static void main (String[] args){


Queue qu=new Queue();
Scanner Dinamis = new Scanner(System.in);
System.out.println();
int i;
int[] item = new int[50];
for (i = 0;i<item.length;i++){
System.out.println("Antrian ke-"+(i+1)+" ");
/* item[i]=i+1; bisa diubah ke
item[i]=Dinamis.nextInt(); agar menjadi dinamis*/
item[i]=i+1;
qu.enqueue(item[i]);
}
System.out.println("\nSetelah antrian diisi");
qu.show();
for (i = 0;i<=((1-15)*(-1));i++){
qu.dequeue();
item[i]='\0';
}
System.out.println("\nSetelah pembagian sembako hari
pertama");
qu.show();
qu.deleteall();
System.out.println("\nSetelah antrian bubar pada hari
pertama");
qu.show();
for (i = 0;i<=((20-30)*(-1));i++){
qu.enqueue(item[i+(20-1)]);
item[i+(20-1)]='\0';
}
System.out.println("\nSetelah antrian diisi pada hari
kedua");
qu.show();
qu.deleteall();
for (i = (16-1);i<50;i++)
if (item[i]!=0)
qu.enqueue(item[i]);
System.out.println("\nAntrian yang tersisa pada hari
kedua");
qu.show();
System.out.println("Selesai");
}
}
b. Hasil run

S-ar putea să vă placă și