Java Program to Implement Triply Linked List

This is a Java Program to implement Triply Linked List. Triply linked list is a list in which each node has 3 pointers pointing to three other nodes. Here a binary search tree is implemented using a triply linked list.

Here is the source code of the Java program to implement Triply Linked List. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

/*
 * Java Program to Implement Triply Linked List
 */
 
import java.util.Scanner;    
 
/* class TLLNode */
class TLLNode
{
    TLLNode left, right, middle;
    int data;
 
    /* Constructor */
    public TLLNode(int x)
    {
        data = x;
        left = null;
        right = null;
        middle = null;
    }
}
 
/* class TriplyLinkedList */
class TriplyLinkedList
{
    TLLNode root, tmp;
 
    /* Constructor */
    public TriplyLinkedList()
    {
        root = null;
        tmp = null;
    }
    /* function to check if empty */
    public boolean isEmpty()
    {
        return root == null;
    }
    /* function to clear list */
    public void makeEmpty()
    {
        root = null;
        tmp = null;
    }
    /* function to insert */
    public void insert(int x)
    {
        root = insert(root, x);        
    }
    /* function to insert element */
    public TLLNode insert(TLLNode r, int x)
    {
        if (r == null)
        {    
            r = new TLLNode(x);
            r.middle = tmp;
        }
        else
        {
            tmp = r;
            if (r.data >= x)
                r.left = insert(r.left, x);
            else
                r.right = insert(r.right, x);
        }
        return r;
    }    
    /* Function for print */
    public void printList()
    {
        printList(root);
    }
    private void printList(TLLNode r)
    {
        if (r != null)
        {
            printList(r.left);
            System.out.print(r.data +" ");
            printList(r.right);
        }
    }
}
 
/* class TriplyLinkedListTest */
public class TriplyLinkedListTest
{
    public static void main(String[] args) 
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Triply Linked List Test\n");  
        TriplyLinkedList tll = new TriplyLinkedList();
 
        char ch;
        /*  Perform list operations  */
        do    
        {
            System.out.println("\nTriply Linked List Operations\n");
            System.out.println("1. insert ");
            System.out.println("2. check empty");
            System.out.println("3. make empty"); 
 
            int choice = scan.nextInt();            
            switch (choice)
            {
            case 1 : 
                System.out.println("Enter integer element to insert");
                tll.insert( scan.nextInt() );                     
                break;                          
            case 2 :  
                System.out.println("Empty status = "+ tll.isEmpty());
                break;   
            case 3 :  
                System.out.println("\nList Cleared\n");
                tll.makeEmpty();
                break;            
            default : 
                System.out.println("Wrong Entry \n ");
                break;   
            }
            /*  Display list */ 
            System.out.print("\nList : ");
            tll.printList();
 
            System.out.println("\nDo you want to continue (Type y or n) \n");
            ch = scan.next().charAt(0);                        
        } while (ch == 'Y'|| ch == 'y');  
    }
}
Triply Linked List Test
 
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
97
 
List : 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
24
 
List : 24 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
6
 
List : 6 24 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
19
 
List : 6 19 24 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
94
 
List : 6 19 24 94 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
57
 
List : 6 19 24 57 94 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
1
Enter integer element to insert
23
 
List : 6 19 23 24 57 94 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
2
Empty status = false
 
List : 6 19 23 24 57 94 97
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
3
 
List Cleared
 
 
List :
Do you want to continue (Type y or n)
 
y
 
Triply Linked List Operations
 
1. insert
2. check empty
3. make empty
2
Empty status = true
 
List :
Do you want to continue (Type y or n)
 
n

Related posts:

Java Program to Implement CopyOnWriteArrayList API
Java Program to Implement ArrayBlockingQueue API
Hướng dẫn Java Design Pattern – Iterator
Java Program to implement Bit Matrix
Java Program to Implement Double Order Traversal of a Binary Tree
An Intro to Spring Cloud Task
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Finding Max/Min of a List or Collection
Merging Two Maps with Java 8
Introduction to Spring Cloud CLI
Java Program to Implement the Hill Cypher
A Guide to Spring Boot Admin
Java Program to Solve Knapsack Problem Using Dynamic Programming
Introduction to Liquibase Rollback
Converting Between an Array and a Set in Java
The XOR Operator in Java
Hướng dẫn Java Design Pattern – Facade
Function trong Java 8
Java Program to Check whether Graph is a Bipartite using BFS
Guide to the Synchronized Keyword in Java
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Java Program to Perform Polygon Containment Test
Java Program to Describe the Representation of Graph using Adjacency List
Calling Stored Procedures from Spring Data JPA Repositories
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java – Get Random Item/Element From a List
Giới thiệu Google Guice – Injection, Scope
Tạo chương trình Java đầu tiên sử dụng Eclipse
Spring Boot - Thymeleaf
Java Program to Check for balanced parenthesis by using Stacks
Simple Single Sign-On with Spring Security OAuth2
Batch Processing with Spring Cloud Data Flow