Skip to main content

Program in Java: To merge two linked list

Program in Java: To merge two linked list




import java.util.Scanner;
class node
{
int data;
node link;
node()
{
data=0;
link=null;
}
void AddEnd(int data)
{
node temp = new node();
temp.data=data;
if(this.data==0 && this.link==null)
{ //if the linkedlist is empty
this.data=data;
return;
}
else{
node ptr=this;
while(ptr.link!=null)
{
ptr=ptr.link;
}
ptr.link=temp;
}
}
void merge(node l) //node ptr is the linked list from which your are calling the merge function
{ //node l is the second linked list which stores takes another linked list object as parameter
  //finally it combines the two list and stores in the memory
  node ptr=this; //the memory
  if(ptr==null) //if the ptr is null then make the node l and the new node chain
  {
  ptr=l;
  }
  else
  {
  while(ptr.link!=null)
  {
  ptr=ptr.link;
  }
  ptr.link=l;
  }
}
void display()
{
node ptr=this; //stores the linkedlist
while(ptr.link!=null)
{
System.out.println(ptr.data);
ptr=ptr.link;
}
System.out.println(ptr.data);
}
public static void main(String args[])
{
node ob = new node();
ob.AddEnd(50);
ob.AddEnd(60);
ob.AddEnd(70);
System.out.println("First linked list is");
ob.display();
node ob2 = new node();
ob2.AddEnd(80);
ob2.AddEnd(90);
ob2.AddEnd(100);
System.out.println("Second linked list is");
ob2.display();
//combining the two list
ob.merge(ob2); //ob list will be at the first part of the chain and ob2 list will be at the second
       //part of the chain
       //so basically ob is ptr and ob2 is the l as defined in the merge()
System.out.println("Combined list is:");
ob.display();
}
}


Popular posts from this blog

Panagram ISC 2025 Specimen Practical Paper

import java.util.*; class panagram //ISC 2025 Practical Question {     //str for storing the sentence     String str;     panagram()     {         str="";     }     void accept()     {         Scanner sc=new Scanner(System.in);         System.out.println("Enter a sentence:");         str=sc.nextLine();     }     void panagramcheck()     {         int letters[]=new int[26];          StringTokenizer st=new StringTokenizer(str);         while(st.hasMoreTokens())         {             String w = st.nextToken().toUpperCase();             for(int i=65;i<=90;i++)             {                 for(int j=...

Program in Java: ISC Program CellPhone Keystrokes

import java.util.Scanner; public class Keypad {     public static void main(String args[])     {         //Array to hold keystrokes for each letter         int keys[] = new int[26];         //intialise         keys['A'-'A']=1; //A         keys['B'-'A']=2; //B         keys['C'-'A']=3; //C         keys['D'-'A']=1; //D         keys['E'-'A']=2; //E         keys['F'-'A']=3; //F         keys['G'-'A']=1; //G         keys['H'-'A']=2; //H         keys['I'-'A']=3; //I         keys['J'-'A']=1; //J         keys['K'-'A']=2; //K         keys['L'-'A']=3; //L         keys['M'-'A']=1; //M         keys['N'-'A']=2; //N       ...

ISC Program: Predict day of the week from date

Algorithm : 1)Take the last two digits of the year. 2)Divide by 4, discarding any fraction. 3)Add the day of the month. 4)Add the month's key value: JFM AMJ JAS OND 144 025 036 146 5)Subtract 1 for January or February of a leap year. 6)For a Gregorian date, add 0 for 1900's, 6 for 2000's, 4 for 1700's, 2 for 1800's; for other years, add or subtract multiples of 400. 7)For a Julian date, add 1 for 1700's, and 1 for every additional century you go back. 8)Add the last two digits of the year. 9)Divide by 7 and take the remainder. Example : Let's take a date: 26/03/2027 Last two digit of the year = 27 Divide by 4 discard fraction = 27/4 = 6.75 = 6 Add day = 6 + 26 = 32 Month key = 4 + 32 = 36 Add year code = 36 + 6 = 42 Now add two digits of the first year = 42 + 27 = 69 Now get the remainder after dividing by 7 = 69%7=6 So 1 is Sunday so 6 is Friday So 27/03/2027 Program : import java.util.Scanner; public class daydate {     public static void main(String[] arg...