Implementing Double Linked Lists

I have been set a task creating a java class to implement the data cells of a double linked list, then improving on this class so that it will implemt the interface of a LinearList using a double linked list.
HELP?!?!?!?!

i have implemented a small method.u can implement the remaining methods as u want. I have not tested the code. Just for idea i am giving it. try it.
public class Node{
     Node leftNode;
     Node rightNode;
     int data;
     public Node addNode(Node node,int data,int position){
          Node originalCopy=node;
          for(int i=0;i<position;i++){
               Node tempNode=new Node();
               tempNode.data=data;
               tempNode.leftNode=node;
               tempNode.rightNode=node.rightNode;
               node=node.rightNode;
          return originalCopy;
This class represents a Doubly linked list and it provides operations on it.

Similar Messages

  • Search in Double link list in java

    Can any body give me the code implementation for searching an element in double link list in java as soon as possible...

    Can any body give me the code implementation for
    searching an element in double link list in java as
    soon as possible...Psuedo code...
    current = head of list
    found = null
    while(current is not null)
       if doesItMatch(current, target)
            break
       current = current->next
    if (current is null)  Out("no match")
    else Out("found it")

  • How to implement a linked list in oracle ?

    HI All
    I want to know if there a way to implement a linked list in oracle ?
    Thanks in Advanced
    Naama

    A linked list is an array of the relevant data plus an indicator of the next and previous entries, right?
    Sounds easily achievable with any of the plsql collection types.
    The simplest would be a plsql associative array of a record
    Assignments of records in collections is always a bit hamfisted compared to sql objects types though (IMO).
    Something like ?
    DECLARE
    TYPE r_payload IS RECORD
    (col1 number,
      col2 number);
    TYPE r_array_entry is RECORD
    (prev_entry PLS_INTEGER,
      next_entry PLS_INTEGER,
      payload    r_payload);
    TYPE t_array IS TABLE OF r_array_entry INDEX BY PLS_INTEGER;
    v_array t_array;
    BEGIN
    NULL;
    END; 
      The use case for such a structure in properly coded SQL & PL/SQL is possibly the harder question.

  • [svn:bz-trunk] 18926: bug fix BLZ-570 Double linked list with lot of objects result in BlazeDS Error deserializing error  : StackOverflowError

    Revision: 18926
    Revision: 18926
    Author:   [email protected]
    Date:     2010-12-01 14:07:19 -0800 (Wed, 01 Dec 2010)
    Log Message:
    bug fix BLZ-570 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError
    We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml.
    This needs documentation.
    Checkintests pass
    Ticket Links:
        http://bugs.adobe.com/jira/browse/BLZ-570
    Modified Paths:
        blazeds/trunk/modules/common/src/flex/messaging/errors.properties
        blazeds/trunk/modules/core/src/flex/messaging/endpoints/AbstractEndpoint.java
        blazeds/trunk/modules/core/src/flex/messaging/io/SerializationContext.java
        blazeds/trunk/modules/core/src/flex/messaging/io/amf/Amf0Input.java
        blazeds/trunk/modules/core/src/flex/messaging/io/amf/Amf3Input.java
        blazeds/trunk/modules/core/src/flex/messaging/io/amf/AmfIO.java

  • [svn:bz-4.0.0_fixes] 20451: backporting bug fix BLZ-570/ BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error  : StackOverflowError  We put hard limit to the max object nest level to prevent StackOverFlowError .

    Revision: 20451
    Revision: 20451
    Author:   [email protected]
    Date:     2011-02-24 08:33:31 -0800 (Thu, 24 Feb 2011)
    Log Message:
    backporting bug fix BLZ-570/BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError  We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml. This needs documentation.  Checkintests pass
    Ticket Links:
        http://bugs.adobe.com/jira/browse/BLZ-570
        http://bugs.adobe.com/jira/browse/BLZ-620
    Modified Paths:
        blazeds/branches/4.0.0_fixes/modules/common/src/flex/messaging/errors.properties
        blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/endpoints/AbstractEndpoint.j ava
        blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/SerializationContext.java
        blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/Amf0Input.java
        blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/Amf3Input.java
        blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/AmfIO.java

    Dear Pallavi,
    Very useful post!
    I am looking for similar accelerators for
    Software Inventory Accelerator
    Hardware Inventory Accelerator
    Interfaces Inventory
    Customization Assessment Accelerator
    Sizing Tool
    Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
    Request help on such accelerators... Any clues?
    Any reply, help is highly appreciated.
    Regards
    Manish Madhav

  • [svn:bz-3.x] 20443: back porting bug fix BLZ-570/ BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error  : StackOverflowError  We put hard limit to the max object nest level to prevent StackOverFlowError .

    Revision: 20443
    Revision: 20443
    Author:   [email protected]
    Date:     2011-02-23 21:19:22 -0800 (Wed, 23 Feb 2011)
    Log Message:
    back porting bug fix BLZ-570/BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError  We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml. This needs documentation.  Checkintests pass
    Ticket Links:
        http://bugs.adobe.com/jira/browse/BLZ-570
        http://bugs.adobe.com/jira/browse/BLZ-620
    Modified Paths:
        blazeds/branches/3.x/modules/common/src/java/flex/messaging/errors.properties
        blazeds/branches/3.x/modules/core/src/java/flex/messaging/endpoints/AbstractEndpoint.java
        blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/SerializationContext.java
        blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/Amf0Input.java
        blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/Amf3Input.java
        blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/AmfIO.java

  • Implementation of Linked List class

    I am trying to implement the Linked List class for one week, but I couldn't figure it out. If you know, please let me know.

    Here is an example of a linked list. Hope that will help.
    // define a node of a linked list
    public class Node
    public int data; // point to data
    public Node next; // pointer to next node or point to null if end of list
    // listTest1
    public class ListTest1
    public static void main(String[] args)
    Node list;
    list = new Node();
    list.data = 3;
    list.next = new Node();
    list.next.data = 7;
    list.next.next = new Node();
    list.next.next.data = 12;
    list.next.next.next = null;
    Node current = list;
    while (current != null) {
    System.out.print(current.data + " ");
    current = current.next;
    System.out.println();
    // other listnode
    public class ListNode
    public int data;
    public ListNode next;
    public ListNode()
    // post: constructs a node with data 0 and null link
    this(0, null);
    public ListNode(int value)
    // post: constructs a node with given data and null link
    this(value, null);
    public ListNode(int value, ListNode link)
    // post: constructs a node with given data and given link
    data = value;
    next = link;
    Contents of ListTest2.java
    public class ListTest2
    public static void main(String[] args)
    ListNode list = new ListNode(3, new ListNode(7, new ListNode(12)));
    ListNode current = list;
    while (current != null) {
    System.out.print(current.data + " ");
    current = current.next;
    System.out.println();

  • *** glibc detected *** corrupted double-linked list: 0x004ec848 ***

    hi,
    I am using Berkeley DB database and facing a problem while retrieving records. After building database i'm retrieving records from that database.After retrieving some records it gives the error as
    *** glibc detected *** corrupted double-linked list: 0x004ec848 *** Aborted. What can i do solve this problem.
    Thank you,
    ravi

    Hi Ravi,
    Have you googled for the error message? What are the results?
    A good thing to do is to provide me a test program and more details about your operating system environment. Also, try to update your glibc version.
    Regards,
    Bogdan Coman

  • *** glibc detected *** corrupted double-linked list: 0x0027f878 ***

    users are getting this error
    {noformat}*** glibc detected *** corrupted double-linked list: 0x0027f878 ***{noformat}{noformat} {noformat}
    what could the issue for above error,
    in concurrent reqest out put,
    Apps:12i
    os: Linux

    Sawwan,
    Request language is :
    AMERICAN
    Request territory is :
    AMERICA
    Previous NLS_LANG Environment Variable was :
    AMERICAN_AMERICA.WE8ISO8859P15
    Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
    AMERICAN_AMERICA.WE8ISO8859P15
    stat_low = 6
    stat_high = 0
    emsg:was terminated by signal 6
    Enter Password:
    *** glibc detected *** corrupted double-linked list: 0x0027f878 ***
    Report Builder: Release 10.1.2.0.2 - Production on Wed Mar 18 09:02:51 2009
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Start of log messages from FND_FILE
    End of log messages from FND_FILE
    Reset original NLS_LANG in environment as :
    AMERICAN_AMERICA.WE8ISO8859P15
    Program was terminated by signal 6
    Concurrent Manager encountered an error while running Oracle*Report for your concurrent request xxxxxxx

  • Corrupted double-linked list

    I have been upgrading wine and I keep running into problems running Guildwars. Every time I upgrade wine to a newer version using pacman the program will not work correctly and freezes. So I have to downgrade to wine 1.1.20.  When I run wine thru  terminal I get
    *** glibc detected *** c:\Program Files\Guild Wars\Gw.exe: corrupted double-linked list: 0x7d4bc4f8 ***
    ======= Backtrace: =========                                                                           
    /lib/libc.so.6(+0x6b6c1)[0xb75dc6c1]                                                                   
    /lib/libc.so.6(+0x6d003)[0xb75de003]                                                                   
    /lib/libc.so.6(cfree+0x6d)[0xb75e0f8d]                                                                 
    /usr/lib/libGLcore.so.1(+0x5964af)[0xb6b8d4af]                                                         
    [0x200000]                                                                                             
    /usr/lib/libGLcore.so.1(+0x5ed980)[0xb6be4980]                                                         
    [0x138808b]                 
    I think this is because somehow libc.so.6 and libGlcore.so.1 is double linked. If so how do I find where they are linked to and how do I get rid of the wrong link. I can only find one /lib/libc.so.6 and only one /usr/lib/libGLcore.so.1 so there are not two of each. Am I going in the right direction?

    That error does not mean a link as in a symbolic link, but as in a data structure in the code.  See http://en.wikipedia.org/wiki/Linked_list for the idea.  The trace is saying that somewhere in libGLcore, there is a linked list which is being corrupted somehow.  This is an error inside the code, and not with your filesystem, so that would not be a way to fix it.  Check out the wine app database at http://appdb.winehq.org/ to see if anyone has had your problem.

  • Delphi Double Linked List to Java

    Does a Delphi Double Linked List correspond to any data type in Java?
    Thanks for your time,
    Nate

    Look at the documentationf for java.util.*, in particular the collections therein.
    java.util.LinkedList is probably closest to what you want.

  • Double Linked Lists

    Hi everyone,
    I have some problems about Double Linked Lists which I can not overcome. When I execute the following codes, there is an exception occured that is called NullPointer Exception in inser method.
    So how can I fix it ??
    class DoublyLinkedNode {
         // properties
         DoublyLinkedNode nextNode;
         DoublyLinkedNode previousNode;
         int size;
         int data;
         // constructors
         public DoublyLinkedNode(int data,DoublyLinkedNode nextNode, DoublyLinkedNode previousNode){
              this.data = data;
              this.nextNode = nextNode;
              this.previousNode = previousNode;
              size = 0;
         // methods
         public void setNext(DoublyLinkedNode next){
              nextNode = next;
         public void setPrevious(DoublyLinkedNode pre){
              previousNode = pre;
         public DoublyLinkedNode getNext(){
              return nextNode;
         public DoublyLinkedNode getPrevious(){
              return previousNode;
         public int getData(){
              return data;
         public void setData(int value){
              data = value;
    class DoubleLinkedList {
         // properties
         int size;
         DoublyLinkedNode tail;
         DoublyLinkedNode head;
         String s = "";     
         // constructors
         public DoubleLinkedList(){
              head = null;
              tail = null;
              size = 0;
         // methods
         public boolean isEmpty(){
              if(head == null)
                   return true;
              else
                   return false;
         public DoublyLinkedNode next(){          
              return head.getNext();
         public DoublyLinkedNode previous(){
              return head.getPrevious();     
         public void insert(int data){
              head = new DoublyLinkedNode(data, head.getNext(),head.getPrevious());
              size++;
         public String toString(){
              s += head.getData() + "";
              head = head.getNext();
              if(isEmpty())
                   return s;
              else
                   return toString();               
         public static void main(String args[]){
              DoubleLinkedList list = new DoubleLinkedList();
              list.insert(111);
              list.insert(21);          
              list.insert(311);
              list.insert(41);
              list.insert(51);                    
              list.insert(16);
              list.insert(117);
              System.out.println(list.toString());
    //          for(int a = 0; a < 5; a++){
    //               list.previous();
    }

    Again, I changed insert method which is now correct I think.
    But now, toString cause only appear the last object on the console.
    So how can I fix toString method ???
         public void insert(int data){
              DoublyLinkedNode pointer = head.getPrevious();
              DoublyLinkedNode pointer2 = pointer.getNext();
              head = new DoublyLinkedNode(data,pointer2, pointer );     
         }

  • Circular Double Linked List

    If the circular double linked list has only one item, will that item's next/previous node references point to itself?

    Yeah, it would make sense. But I'm wondering if there's any standard?
    It could also make sense for the references to simply be null.

  • Hashing with double linked list....

    Okay, everything compiles great but I'm getting a NullPointerException upon running the program.
    'line' is a string from a file to let you know that much. 'firstnode', 'nownode', and 'lastnode' are pointers in my array linked list 'anArray'. I know clever names. lol But hey, my professor uses variable names like 'X' 'T' and 'G' all the time, confusing bastard. :-) Anywho... I put a note in the code so you can see where this exception is taking place. Any help is 100% welcomed and appreciated!
         while( line != null )
         int hashindex = hash(line, 20);
         if(firstnode[hashindex] == null)
                 firstnode[hashindex] = nownode[hashindex] = lastnode[hashindex] = new ListNode( line );
         else
                 nownode[hashindex] = new ListNode( line );
    //This line is the exception, if I comment it out, the next line throws it
              anArray[hashindex].CONS(nownode[hashindex], lastnode[hashindex]);
              anArray[hashindex].LCONS(lastnode[hashindex], nownode[hashindex]);
    //If I comment out the 2 lines above this line DOES NOT throw an exception, weird
              lastnode[hashindex] = nownode[hashindex];
         line = input.readLine();
         }

    Okay, here's some more code... Just the top portion of the program. Keep in mind that methods like CONS, LCONS, CDR, and LCDR are just using the ListNode methods such as .ptr and stuff... My professor makes us use this ADT he provided. I can post ALL code if you would like but I dont think all that is necessary.
    static BufferedReader input, console;
    static List hashtable = new List();
    static List[] anArray = new List[20];
    static ListNode[] nownode, firstnode, lastnode;
    static String message = "";
    static int nodecount = 0;
    public static void openFile()
    //Opens the file for input and throws and exception if the file is not there
         File taskFile = new File("prices.txt");
         try
             input = new BufferedReader(new FileReader( taskFile ));
         catch( FileNotFoundException fileNotFoundException )
         outputStuff("Error", "The file does not exist!", "error");
    public synchronized static void setupTable() throws IOException
         firstnode = new ListNode[20];
         nownode = new ListNode[20];
         lastnode = new ListNode[20];
         String line = input.readLine();
         firstnode[0] = nownode[0] = lastnode[0] = new ListNode( line );
         while( line != null )
         hashindex = hash(line, 20);
         if(firstnode[hashindex] == null)
                 firstnode[hashindex] = nownode[hashindex] = lastnode[hashindex] = new ListNode( line );
         else
                 nownode[hashindex] = new ListNode( line );
              anArray[hashindex].CONS(nownode[hashindex], lastnode[hashindex]);
              anArray[hashindex].LCONS(lastnode[hashindex], nownode[hashindex]);
              lastnode[hashindex] = nownode[hashindex];
         line = input.readLine();
         for(int i = 0; i <= 20; i++)
              while( nownode[i] != null)
              message += "String = " + anArray.info( nownode[i], 0 ) + "\tIndex = " + i + "\n";
         nownode[i] = anArray[i].CDR(nownode[i]);
         outputStuff("test", message, "blah");
    }//End setupTable

  • Sorted Double Linked List.

    public class DLinkedList {
    class Node {
    String data;
    Node next = null;
    Node prev = null;
    public Node(String o, Node n, Node p){
    data = o;
    next = n;
    prev = p;
    private int max;
    private Node head;
    private Node current = null;
    public DLinkedList(int max_size) {
    head = null;
    current = null;
    max = max_size;
    public boolean isEmpty() {
    public void insert(String o) {
    Node n;
    while (current != null && o.compareToIgnoreCase(current.data) > 0)
    current.prev = current;
    current = current.next;
    if (current.prev == null)
    // First Item in List
    n = new Node(o, current, null);
    else
    current.prev.next = new Node(o, current, current.prev);
    I am working on the insert and keep getting a null pointer exception. Can someone point me in the right direction.
    Thanks

    if (current.prev == null)
      // First Item in List
      n = new Node(o, current, null);
    }This code right here will cause a NullPointerException if current is still null, which is one of the possible exit conditions in your loop.

Maybe you are looking for