+ Reply to Thread
Results 1 to 2 of 2

Thread: How do I implement a Linked List in Java?

  1. #1
    Junior Member
    Join Date
    Jun 2012
    Posts
    14

    How do I implement a Linked List in Java?

    What's the best way to make a linked list in Java?

  2. #2
    Junior Member
    Join Date
    Jun 2012
    Posts
    15
    The obvious solution to developers familiar to Java is to use the LinkedList class already provided in java.util. Say, however, you wanted to make your own implementation for some reason. Here is a quick example of a linked list that inserts a new link at the beginning of the list, deletes from the beginning of the list and loops through the list to print the links contained in it. Enhancements to this implementation include making it a double-linked list, adding methods to insert and delete from the middle or end, and by adding get and sort methods as well.

    Note: In the example, the Link object doesn't actually contain another Link object - nextLink is actually only a reference to another link.

    Code:
    class Link {
        public int data1;
        public double data2;
        public Link nextLink;
    
        //Link constructor
        public Link(int d1, double d2) {
                data1 = d1;
                data2 = d2;
        }
    
        //Print Link data
        public void printLink() {
                System.out.print("{" + data1 + ", " + data2 + "} ");
        }
    }
    
    class LinkList {
        private Link first;
    
        //LinkList constructor
        public LinkList() {
                first = null;
        }
    
        //Returns true if list is empty
        public boolean isEmpty() {
                return first == null;
        }
    
        //Inserts a new Link at the first of the list
        public void insert(int d1, double d2) {
                Link link = new Link(d1, d2);
                link.nextLink = first;
                first = link;
        }
    
        //Deletes the link at the first of the list
        public Link delete() {
                Link temp = first;
                first = first.nextLink;
                return temp;
        }
    
        //Prints list data
        public void printList() {
                Link currentLink = first;
                System.out.print("List: ");
                while(currentLink != null) {
                        currentLink.printLink();
                        currentLink = currentLink.nextLink;
                }
                System.out.println("");
        }
    }  
    
    class LinkListTest {
        public static void main(String[] args) {
                LinkList list = new LinkList();
    
                list.insert(1, 1.01);
                list.insert(2, 2.02);
                list.insert(3, 3.03);
                list.insert(4, 4.04);
                list.insert(5, 5.05);
    
                list.printList();
    
                while(!list.isEmpty()) {
                        Link deletedLink = list.delete();
                        System.out.print("deleted: ");
                        deletedLink.printLink();
                        System.out.println("");
                }
                list.printList();
        }
    }

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts