RSS2.0

Looking Something??



[Data Structure] Singly Linked List - Java Programming Language

Thursday, March 6, 2008

Singly-Linked List

Each item called Node in the Singly linked list is stored with an indication of where the next item is. To access the data in the middle of the list, head, which is the first node, is used to know where the first item is. Different with array, a linked list allows addition or deletion of items in the middle of collection with only a constant amount of data movement. To conclude, The list will be a chain of objects of type Node that contain the data and a reference to the next Node in the list.

The implementation of class Singly Linked List in Java Programming Language :

class Node{

int data;

Node next;

}

class LinkedList{

Node head; //posisi awal dari linked list

Node tail; //posisi akhir dari linked list

/**

* Fungsi untuk mengecek apakah linked list masih kosong

*/

boolean isEmpty(){

return (head==null);

}

void addFirst(Node input){

if (isEmpty()){ //Jika linked list masih kosong,

head = input; //maka head dan tail sama dengan node input

tail = input;

}

else {

input.next = head; //Jika linked list sudah berisi,

head = input; //maka input akan di depan dan menjadi head

}

}

void addLast(Node input){

if (isEmpty()){ //Jika linked list masih kosong,

head = input; //maka head dan tail sama dengan node input

tail = input;

}

else {

tail.next = input; //Jika linked list sudah berisi,

tail = input; //maka input akan di belakang dan menjadi tail

}

}

void insertAfter(int key,Node input){

Node temp = head;

do {

if (temp.data == key){ //Jika data sama dengan key, maka input

input.next = temp.next; //disambung diantara temp dan temp.next

temp.next = input;

System.out.println("Insert data is succeed.");

break; //dari temp --> temp.next menjadi :

} //temp --> input --> temp.next

temp = temp.next;

}

while (temp!=null);

}

void insertBefore(int key,Node input){

Node temp = head;

while (temp != null){

if ((temp.data == key)&&(temp == head)){

this.addFirst(input); /* jika insert pada awal linked list

maka call method addFirst */

System.out.println("Insert data is succeed.");

break;

}

else if (temp.next.data == key){

input.next = temp.next; //dari temp --> temp.next menjadi

temp.next = input; //temp --> input --> temp.next

System.out.println("Insert data is succeed.");

break;

}

temp = temp.next;

}

}

void removeFirst(){

Node temp = head;

if (!isEmpty()){

if (head == tail){ //jika element linked list hanya 1,

head = tail = null; //maka head dan tail menjadi null

} //sehingga linked list kosong

else {

temp = temp.next; //memajukan temp ke temp.next

head = temp; //kemudian head dipindah ke temp

temp = null; //kemudian temp di-null (optional)

}

}

else System.out.println("Data is empty!");

}

void removeLast(){

Node temp = head;

if (!isEmpty()){

if (tail == head){ //jika element linked list hanya 1

head = tail = null; //maka head dan tail menjadi null

} //sehingga linked list kosong

else {

while (temp.next != tail){

temp = temp.next; //memajukan temp hingga satu elemen

} //sebelum tail.

temp.next = null; //temp.next di-null,dan jadi akhir LL

tail = temp; //tail dipindah ke temp

temp = null;

}

}

else System.out.println("Data is empty!");

}

void remove(int key){

Node temp = head;

if (!isEmpty()){

while (temp != null){

if (temp.next.data == key){ //mengganti temp.next dengan

temp.next = temp.next.next; //temp.next.next

break; //dari temp --> temp.next -->temp.next.next

} //menjadi temp --> temp.next.next

else if ((temp.data == key)&&(temp == head)){

this.removeFirst();//jika key berada pada awal linked list,

break; //maka call method removeFirst

}

temp = temp.next;

}

} else System.out.println("Data is empty!");

}

void find (int key){

int i = 0;

boolean found = false;

Node temp = head;

while (temp != null){

if (temp.data == key){

found = true;

break;

}

i++;

temp = temp.next;

}

if (found){

System.out.println(key+" is found at index "+i);

}

else System.out.println("Data isn't found");

}

void printNode(){

Node temp;

temp = head;

while (temp != null){

System.out.println(temp.data);

temp = temp.next;

}

}

}

[ Read More ]


[Java] Linked List - Introduction - Data Structures

Linked List - Introduction

A Linked List is a concrete data structure consisting of a sequence of nodes, each containing arbitrary data fields and one or two references ("links") pointing to the next and/or previous nodes.

The principal benefit of a linked list over a conventional array is that the order of the linked items may be different from the order that the data items are stored in memory or on disk, allowing the list of items to be traversed in a different order.

A linked list is a self-referential data type because it contains a pointer or link to another node of the same type.

Linked lists permit insertion and removal of nodes at any point in the list in constant time, but do not allow random access like array.

Several types of linked list :

  1. Singly-Linked List
  2. Doubly-Linked List
  3. Circularly-Linked List

a. Single-Circularly-Linked List

b. Double-Circularly-Linked List

[ Read More ]


[Java] Array - Java Programming Language

Array – Java Programming Language

Array Declaration and Initialization :

a) 1 Dimensional Array :

Declaration : |data type|[ ] |variable name|;

|data type||variable name|[ ];

Example : int x[ ]; /* or */ int [ ] x;

Initialize Array / Instansiate Object with constructor :

|variable name|= new |data type|[sum_of_array];

Example : x = new int[10];

We can also write these together :

|data type||variable name|[ ] = new |data type|[sum_of_array];

Example : int x[ ] = new int [10];

b) 2 Dimensional Array :

Declaration : |data type|[ ][ ] |variable name|;

|data type||variable name|[ ][ ];

Example : int x[ ][ ]; /* or */ int [ ][ ] x;

Initialize Array / Instansiate Object with constructor :

|variable name|= new |data type|[sum_of_array][sum_of_array];

Example : x = new int[10][10];

We can also write these together :

|data type||variable name|[ ] = new |data type|[sum_of_array] [sum_of_array];

Example : int x[ ][ ] = new int [10][10];

[ Read More ]


[Java] Simple Java Coding - Hello World!

Monday, March 3, 2008

Simple Java Coding – Hello World!

What’s wrong with the program below?

public class Main

{

void show(){

System.out.println("Hello World!");

}

public static void main (String args[])

{

int value;

show();

System.out.println(value);

}

};

The answer :

  1. the value of variable int value isn’t initialized yet
  2. Method which has static access modifier can only call method which type is static

Correction :

public class Main

{

static void show(){

System.out.println("Hello World!");

}

public static void main (String args[])

{

int value = 0;

show();

System.out.println(value);

}

};

This program will run well. Try it to make a simple java program.


[ Read More ]


[Java] Simple Java Programming Language Keywords

Simple Java Keywords

a) new : Produce a single instans from a class dan make reference to that object.

Example :

class box {

int w,h,l;

box() {

this.w = 0;

this.h = 0;

this.l = 0;

}

};

public class BoxData {

public static void main(String[] args) {

box k = new box();

//k is a reference to an object of box class

}

}

b) private: Give a special access to a class so it can only be used by its class.

Example :

class box {

int w,h,l;

box() {

this.w = 0;

this.h = 0;

this.l = 0;

}

};

//w,h,and l variable can only be used by class Box

c) public : Give a special access to a class so it can be used by all classes.

Example :

class box {

int w,h,l;

box() {

this.w = 0;

this.h = 0;

this.l = 0;

}

};

//class box can be accessed by all classes include different package.

d) this : A special referenced symbol used in a method accessed by active object.

Example :

class box {

int w,h,l;

box() {

this.w = 0;

this.h = 0;

this.l = 0;

}

};

e) protected: Give a special access to a class so it can be used by a method which is in that class and subclass elements.

Example :

class box {

protected int w,h,l;

protected getW(){

return this.w;

}

box() {

this.w = 0;

this.h = 0;

this.l = 0;

}

};

[ Read More ]


[Java] Introduction to Java Programming Language

Introduction to Java Programming Language

Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun's Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode which can run on any Java virtual machine (JVM) regardless of computer architecture.

The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun made available most of their Java technologies as free software under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.

HISTORY

The Java language was created by James Gosling in June 1991 for use in a set top box project. The language was initially called Oak, after an oak tree that stood outside Gosling's office - and also went by the name Green - and ended up later being renamed to Java, from a list of random words. Gosling's goals were to implement a virtual machine and a language that had a familiar C/C++ style of notation. The first public implementation was Java 1.0 in 1995. It promised "Write Once, Run Anywhere" (WORA), providing no-cost runtimes on popular platforms. It was fairly secure and its security was configurable, allowing network and file access to be restricted. Major web browsers soon incorporated the ability to run secure Java applets within web pages. Java quickly became popular. With the advent of Java 2, new versions had multiple configurations built for different types of platforms. For example, J2EE was for enterprise applications and the greatly stripped down version J2ME was for mobile applications. J2SE was the designation for the Standard Edition. In 2006, for marketing purposes, new J2 versions were renamed Java EE, Java ME, and Java SE, respectively.

In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a de facto standard that is controlled through the Java Community Process. At one time, Sun made most of its Java implementations available without charge although they were proprietary software. Sun's revenue from Java was generated by the selling of licenses for specialized products such as the Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and Runtime Environment (JRE) which is a subset of the SDK, the primary distinction being that in the JRE, the compiler, utility programs, and many necessary header files are not present.

On 13 November 2006, Sun released much of Java as free software under the terms of the GNU General Public License (GPL). On 8 May 2007 Sun finished the process, making all of Java's core code open source, aside from a small portion of code to which Sun did not hold the copyright.

JAVA IDE

Java IDE makes us easier to make a program because we don’t need to remember the syntax and we can compile just with one click. For Java Programming Language, I suggest you to use NetBeans 6.0 and install Java Development Kit (1.6) which are free licensed. JCreator also can be used, but you must purchase a licensed. So, I suggest to use NetBeans 6.0 for learning.

You can download it here :
http://java.sun.com/javase/downloads/index.jsp


Source : en.wikipedia.org/wiki


[ Read More ]