Skip to content

Commit

Permalink
Insertion in linked list Java (#1694)
Browse files Browse the repository at this point in the history
* Create InsertionInLinkedList.java

For Issue #513

* Update readme.md

Co-authored-by: Tarun Yadav <[email protected]>
  • Loading branch information
khusheekapoor and tarun26091999 authored Jun 4, 2021
1 parent adbdc5f commit c7c23fd
Show file tree
Hide file tree
Showing 2 changed files with 185 additions and 8 deletions.
181 changes: 181 additions & 0 deletions Code/Java/InsertionInLinkedList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
/*
* To insert a node in a LinkedList.
* There are 2 cases:
* 1. To insert a node at the start of the linked list.
* 2. To insert a node in between the linked list.
*/

import java.util.*;

class InsertionInLinkedList
{
Node start;

InsertionInLinkedList()
{
start = null;
}

void create(Node node)
{
//This function is to create the LinkedList
if (start == null)
{
start = node;
}
else
{
Node temp = start;
while (temp.address != null)
temp = temp.address;
temp.address = node;
}
}

void display()
{
//This function is to display the linkedlist
Node temp = start;
System.out.println("Linked List: ");
while (temp!= null)
{
System.out.print(temp.data + " ");
temp = temp.address;
}
System.out.println();
}

void insert(int pos, int value)
{
//This function is to insert a node in the linkedlist
Node ptr = null;

int ctr = 1;

if(pos == 1)
{
Node temp = new Node(value);
temp.data = value;
temp.address = start;
start = temp;
}

for(ptr = start; ptr != null; ptr = ptr.address)
{
ctr++;

if(ctr == pos)
{
Node temp = new Node(value);
temp.data = value;
temp.address = ptr.address;
ptr.address = temp;
}
}
}

public static void main()
{
Scanner scanner = new Scanner(System.in);

InsertionInLinkedList ob = new InsertionInLinkedList();

int data, flag=1, value, pos;
while(flag!=0)
{
System.out.println("Enter data in linked list: ");
data = scanner.nextInt(); scanner.nextLine();
ob.create(new Node(data));

System.out.println("Do you wish to continue? Enter 1 for yes and 0 for no: ");
flag = scanner.nextInt(); scanner.nextLine();
}
ob.display();

System.out.println("Enter value to be inserted in the linked list: ");
value = scanner.nextInt(); scanner.nextLine();
System.out.println("Enter position of insertion in the linked list: ");
pos = scanner.nextInt(); scanner.nextLine();

ob.insert(pos, value);
ob.display();
}
}
class Node
{
public int data;
public Node address;
Node(int d)
{
data = d;
address = null;
}
}

/*
Test Cases-
1.
Enter data in linked list:
1
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
2
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
3
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
4
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
5
Do you wish to continue? Enter 1 for yes and 0 for no:
0
Linked List:
1 2 3 4 5
Enter value to be inserted in the linked list:
6
Enter position of insertion in the linked list:
3
Linked List:
1 2 6 3 4 5
2.
Enter data in linked list:
1
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
2
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
3
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
4
Do you wish to continue? Enter 1 for yes and 0 for no:
1
Enter data in linked list:
5
Do you wish to continue? Enter 1 for yes and 0 for no:
0
Linked List:
1 2 3 4 5
Enter value to be inserted in the linked list:
7
Enter position of insertion in the linked list:
1
Linked List:
7 1 2 3 4 5
Time Complexity: O(n)
Space Complexity: O(n)
where n is the number of elements in the linked list
*/
12 changes: 4 additions & 8 deletions Linked_list/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,15 @@ properties.

* Alternate Node Deletion ----> [C++](/Code/C++/Deletion of Alternate nodes in a linked list.cpp)
* Cycle detection using Hare and Tortoise algorithm ----> [C++](/Code/C++/CycleDetectLinkedList.cpp) | [Java](/Code/Java/Cycle_Detection_In_Linked_List.java)
* Insertion ----> [C++](/Code/C++/insertion_in_linked_list.cpp) | [Java](/Code/Java/InsertionInLinkedList.java)
* Splitting ----> [C++](/Code/C++/Splitting_Linked_lists.cpp)
* Deleting Node from Linked List ----> [Java](/Code/Java/DeleteNodeFromLinkedList.java)
* Delete a given node without using head pointer ----> [C++](/Code/C++/delete_without_head.cpp)
* Finding intersection node of two linked lists connected in y shape -----> [C++](Code/C++/Intersection_point_of_linked_list.cpp)
* Finding Intersection of Linked Lists ----> [Python](/Code/Python/linked_lists_intersection.py)
* Finding intersection node of two linked lists connected in y shape -----> [C++](Code/C++/Intersection_point_of_linked_list.cpp) | [Python](/Code/Python/linked_lists_intersection.py)
* Implementation of Linked List ----> [Python](/Code/Python/linked_list.py)
* Insertion ----> [C++](/Code/C++/insertion_in_linked_list.cpp)
* Ispalindrome ----> [Python](/Code/Python/isPalindrome_linked_list.py)
* Middle Element ----> [Python](/Code/Python/middle_element_linked_list.py)
* Palindrome Check---->[C++](/Linked_list/PalindromeCheck.cpp) | [Java](/Linked_list/palindrome_checker.java)
* Palindrome Check---->[C++](/Linked_list/PalindromeCheck.cpp) | [Java](/Linked_list/palindrome_checker.java) | [Python](/Code/Python/isPalindrome_linked_list.py)
* Remove Duplicates from Unsorted List ----> [C++](/Code/C++/remove_duplicates.cpp)
* Reversing a Linked List ----> [C++](/Code/C++/reverse_a_linked_list.cpp)
* Remove Loop From Linked List C++(Linked_List/RemoveLoopFromLinkedList.cpp)
* Reverse Linked List in groups of size k ---->[Python](/Code/Python/reverse_linkedlist_in_group_of_size_k.py)
* Reversing a Linked List ----> [C++](/Code/C++/reverse_a_linked_list.cpp)
* Splitting ----> [C++](/Code/C++/Splitting_Linked_lists.cpp)
* Unrolled Linked List Implementation ----> [C++](/Code/C++/unrolled_linked_list.cpp)

0 comments on commit c7c23fd

Please sign in to comment.