Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
java
1 class NodeCSLL {
2 Object data;
3 NodeCSLL next;
4 }
5 public class CircularSingleLinkedList {
6 private NodeCSLL pAwal, pAkhir;
7 private int counter;
8 public CircularSingleLinkedList(){
9 pAwal = null;
1 pAkhir = null;
0 counter = -1;
1 }
1 public void SisipDataDiAwal(Object data){
1 NodeCSLL pBaru = new NodeCSLL();
2 pBaru.data = data;
1 pBaru.next = null;
3 if (pAwal == null){
1 pAwal = pBaru;
4 pAkhir = pBaru;
1 pBaru.next = pAwal;
5 counter = 0;
1 } else {
6 pBaru.next = pAwal;
1 pAwal = pBaru;
7 pAkhir.next = pAwal;
1 counter++;
8 }
1 }
9 public Object SisipDataDiAkhir(Object data){
2 // lengkapi bagian ini
0 }
2 public Object hapusSatuDataDiAkhir(){
1 // lengkapi bagian ini
2 }
2 public void cetak(String Komentar){
2 System.out.println(Komentar);
3 NodeCSLL pCetak;
2 pCetak = pAwal;
4 int i=-1;
2 //if (pCetak != null) i = 0;
5 //while((i < counter) && (i != -1) ){
2 while((i < counter) ){
6 System.out.print(pCetak.data+"->");
2 pCetak = pCetak.next;
7 i++;
2 }
8 System.out.println();
2 }
9 public static void main(String[] args) {
3 CircularSingleLinkedList csll =
0 new CircularSingleLinkedList();
3 csll.SisipDataDiAwal(new Integer(50));
1 csll.SisipDataDiAwal(new Integer(60));
3 csll.SisipDataDiAwal(new Integer(8));
2 csll.SisipDataDiAwal(new Integer(9));
3 csll.SisipDataDiAwal(new Integer(90));
3 csll.SisipDataDiAwal(new Integer(19));
3 csll.cetak("csll Asal");
4 csll.cetak("csll stl 8 di hapus");
3 csll.hapusData(90);
5 csll.cetak("csll stl 90 di hapus");
3 }
6 }
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
Tree.java
1 import java.util.Random;
2 class Node{
3 int data;
4 Node nodeKiri;
5 Node nodeKanan;
6
7 public Node(int dt){
8 data = dt;
9 nodeKiri = nodeKanan = null;
1 }
0
1 public void sisipDt(int dtSisip ){
1 if (dtSisip < data){
1 if(nodeKiri == null)
2 nodeKiri = new Node( dtSisip );
1 else nodeKiri.sisipDt( dtSisip );
3 }
1 else if(dtSisip > data){
4 if ( nodeKanan == null )
1 nodeKanan = new Node(dtSisip);
5 else nodeKanan.sisipDt(dtSisip);
1 }
6 }
1 }
7
1 public class Tree{
8 private Node root;
1
9 public Tree() {
2 root = null;
0 }
2
1 public void sisipDtNode(int dtSisip){
2 if (root == null)
2 root = new Node( dtSisip );
2 else
3 root.sisipDt(dtSisip);
2 }
4
2 public void preorderTraversal() {
5 preorder(root);
2 }
6
2 private void preorder(Node node){
7 if(node == null) return;
2
8 System.out.printf( "%d ", node.data );
2 preorder(node.nodeKiri);
9 preorder(node.nodeKanan);
3 }
0
3 public void inorderTraversal(){
1 inorder( root );
3 }
2
3 private void inorder(Node node){
3 if (node == null) return;
3
4 inorder(node.nodeKiri);
3 System.out.printf( "%d ", node.data );
5 inorder( node.nodeKanan );
3 }
6
3 public void postorderTraversal(){
7 postorder( root );
3 }
8
3 private void postorder(Node node){
9 if (node == null) return;
4
0 postorder(node.nodeKiri);
4 postorder(node.nodeKanan);
1 System.out.printf( "%d ", node.data );
4 }
2
4 public static void main(String args[]) {
3 Tree Tree = new Tree();
4 int nilai;
4 Random randomNumber = new Random();
4
5 System.out.println( "sisip nilai data berikut : " );
4
6 // sisipDt 10 bilangan acak dari 0-99 ke dalam tree
4 for ( int i = 1; i <= 10; i++ ) {
7 nilai = randomNumber.nextInt( 100 );
4 System.out.print(nilai + " " );
8 Tree.sisipDtNode(nilai);
4 }
9
5 System.out.println ( "\n\nPreorder traversal" );
0 Tree.preorderTraversal();
5
1 System.out.println ( "\n\nInorder traversal" );
5 Tree.inorderTraversal();
2
5 System.out.println ( "\n\nPostorder traversal" );
3 Tree.postorderTraversal();
5 System.out.println();
4 }
5 }
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
7
5
7
6
7
7
7
8
7
9
8
0
8
1
8
2
8
3
8
4
8
5
8
6
8
7
8
8
8
9
9
0
9
1
9
2
9
3
9
4
9
5
9
6
9
7
9
8
9
9
1
0
0
1. Perhatikan CircularSingleLinkedList.java
a. Lengkapi method baris ke 29
b. Lengkapi method baris ke 32
2. Kombinasikan CircularLinkedlist dan Tree