Linked List

Check out your favourite anime character 

LL1

 
#include
using namespace std;
struct node
{
  int data;
  struct node *next;
}*head,*temp;
void push()
{
  struct node *prevnode,*currnode,*nextnode;
  prevnode=0;
  currnode=nextnode=head;
  while(nextnode!=0)
  {
    nextnode=nextnode->next;
    currnode->next=prevnode;
    prevnode=currnode;
    currnode=nextnode;
  }
  head=prevnode;
  temp=head;
  cout<<"Linked List : ";
  while(temp!=0)
  {
    cout<<"->"<data;
    temp=temp->next;
  }
}
int main()
{
  int n;
  cin>>n;
  head=0;
  while(n–)
  {
    struct node *new_node=new node;
    cin>>new_node->data;
    new_node->next=0;
    if(head==0)
    {
      head=temp=new_node;
    }
    else
    {
      temp->next=new_node;
      temp=new_node;
    }
  }
  push();
  return 0;
}

LL2

Tap on the image

Use the code: Miru2021

#include
#include

using namespace std;

struct node {
    int data;
    node *next;
} *head = NULL;

void insert(struct node** head_ref, int data) {
    struct node* newnode = (node*)malloc(1*sizeof(struct node));
    newnode->data = data;
    newnode->next = NULL;
    if (*head_ref == NULL) {
        //*head = &newnode;
        *head_ref = newnode;
        return;
    }
    struct node* ptr = *head_ref;
    while(ptr->next != NULL) {
        ptr = ptr->next;
    }
    ptr->next = newnode;
}

void display() {
  ;
}

void display(struct node** head_ref) {
    cout << "Linked List : ";
    struct node* ptr = *head_ref;
    while(ptr!=NULL) {
        cout << "->" << ptr->data;
        ptr = ptr->next;
    }
}

int main() {
    int n;
    cin >> n;
    int data;
    while(n–) {
        cin >> data;
        insert(&head, data);
    }
    display(&head);
    return 0;
}

LL4

Click on the image ! 

Use the code: Miru2021

#include
#include
struct Node
{};
struct node
{
    int data;
    struct node* link;
};
struct node* root=NULL;
void display();
void addatend();
void Create()
{}
void addbef(int,int);
int main() {
    int  ch,i,n,x;
  scanf("%d",&ch);

  for(i=0;i<ch;i++)
  {
   addatend();
  }
  scanf("%d",&n);
  scanf("%d",&x);
  addbef(n,x);
  printf("Linked List : ");
  display();
  return 0;
}
void addatend()
{
    struct node* temp;
    temp=(struct node*)malloc(sizeof(struct node));
    //printf("Enter node data\n");
    scanf("%d",&temp->data);
    temp->link=NULL;
    if(root==NULL)
    {
        root=temp;
    }
    else
    {
        struct node* p;
        p=root;
        while(p->link!=NULL)
        {
            p=p->link;
        }
        p->link=temp;
        }
}
void display()
{
    struct node* temp;
    temp=root;
    if(temp==NULL)
    {
        printf(" ");

    }
    else
    {
        while(temp!=NULL)
        {
            printf("->%d",temp->data);
            temp=temp->link;
        }
    }
}
void addbef(int n,int x)
{
  int flag=0;
  struct node *temp=root;
  if(temp->data==n)
  {
     struct node * t=(struct node*)malloc(sizeof(struct node));
  t->data=x;
  t->link=root;
  root=t;
  }
else
{
  while(temp->link!=NULL)
  {
    if(temp->link->data==n)
    {
      flag=1;
      break;
    }
   temp=temp->link;
  }
  if(flag==1)
  {
  struct node * t=(struct node*)malloc(sizeof(struct node));
  t->data=x;
  t->link=temp->link;
  temp->link=t;
  }
  else
  {
    printf("Node not found! \n");
  }
}
}

Tap here to buy ! 

Use the code : Miru2021

LL6

 

#include
#include
using namespace std;
void Create();
void deleteNode(struct Node **, struct Node *);
void disp();
void disp1();

int flag=0;
struct Node
{
  int data;
  struct Node *link;
}*start;
void Create();
void del();
void disp();
int main()
{
  int n,i,m;
  start=NULL;
  cin>>n;
  for(i=0;i<n;i++)
  {
    Create();
  }
  cin>>m;
  for(i=0;i<m;i++)
  {
    deleteNode(&start, start);
    if(flag==1)
      break;
  }
  if(flag==0)
  disp();
  return 0;
}
void Create()
{
  struct Node *temp,*t;
  temp=(struct Node*) malloc(sizeof(struct Node));
  cin>>temp->data;
  temp->link=NULL;
  if(start==NULL)
  {
    start=temp;
  }
  else
  {
    t=start;
    while(t->link!=NULL)
     t=t->link;
    t->link=temp;
  }

}

Tap on the image !

Use the code: Miru2021


void deleteNode(struct Node **head_ref, struct Node *n)
{
  if(start == n) 
    { 
        if(start->link == NULL) 
        { 
           disp1();
            return; 
        } 
          start->data = start->link->data; 
          n = start->link; 
          start->link = start->link->link;   
        free(n); 

        return; 
    } 
}
void disp()
{
  struct Node *t;
  t=start;
  cout<<"Linked List : ";
  while(t!=NULL)
  {
    cout<<"->"<data;
    t=t->link;
  }
}
void disp1()
{
  struct Node *t;
  t=start;
  cout<<"Linked List : ";
  while(t->link!=NULL)
  {
    cout<<"->"<data;
    t=t->link;
  }
  flag=1;
}

LL7

 
#include
using namespace std;
struct Node
{
  int data;
  Node *next;
};
class link
{
  private:
  Node *start,*tail;
  public:
  link()
  {
    start=NULL;
    tail=NULL;
  }
  void add(int a)
  {
    struct Node*nn=(struct Node*)malloc(sizeof(struct Node));
    nn->data=a;
    nn->next=NULL;
    if(start==NULL)
    {
      start=nn;
      tail=nn;
    }
    else
    {
      tail->next=nn;
      tail=tail->next;
      }
  }
  void print(int p,int n)
  {
    int c=p-n;
    cout<<"Linked List : ";
    while(start!=NULL)
    {
      while(c>0)
      {
        cout<<"->"<<(start->data);
        start=start->next;
        c–;
      }
      break;
    }
  }
};
int main() {
//cout<<"Hello World";
  int n,p,d;
    link ob;
  cin>>n;
  for(int x=0;x<n;x++)
  {
    cin>>p;
    ob.add(p);
  }
  cin>>d;
  ob.print(n,d);
return 0;
}

LL8

 

#include
using namespace std;
struct node
{
  int data;
  struct node *next;
}*start,*temp;
void Create()
{
  int n;
  cin>>n;
  start=NULL;
  while(n–)
  {
    node *new_node= new node;
    cin>>new_node->data;
    new_node->next=0;
    if(start==NULL)
    {
      start=new_node;
      temp=new_node;
    }
    else
    {
      temp->next=new_node;
      temp=new_node;
    }
  }
}
int main()
{
  Create();
  int num;
  cin>>num;
  temp=start;
  while(temp!=0)
  {
    if(temp->data==num)
    {
      start=temp;
      break;
    }
    temp=temp->next;
  }
  if(temp==0)
  {
    cout<<"Invalid Node! "<<endl;
  }
  temp=start;
  cout<<"Linked List : ";
  while(temp!=0)
  {
    cout<<"->"<data;
    temp=temp->next;
  }

}

Click here to avail the offer price!

Use the code: miru2021

LL9

 
#include
#include
using namespace std;
void Create();
struct Node
{
  int data;
  struct Node *link;
}*start;
int main()
{
  int n,i,m;
  int flag=0;
  start=NULL;
  cin>>n;
  for(i=0;i<n;i++)
  {
    Create();
  }
  cin>>m;
  struct Node *t;
  t=start;
  while(t!=NULL)
  {
    if(t->data==m)
    {
      flag=1;
      break;
    }
    t=t->link;
  }
  if(flag==1)
  {
    cout<<"Linked List : ";
   t=start;
  while(t!=NULL)
  {
    if(t->data==m)
    {
      cout<<"->"<data;
      t=t->link;
      break;
    }
    cout<<"->"<data;
t=t->link;
  }
  }
  else
  {
    cout<<"Invalid Node! \n";
   cout<<"Linked List : ";
   t=start;
  while(t!=NULL)
  {
    cout<<"->"<data;
t=t->link;
  }
  }
  return 0;
}
void Create()
{
  struct Node *temp,*t;
  temp=(struct Node*) malloc(sizeof(struct Node));
  cin>>temp->data;
  temp->link=NULL;
  if(start==NULL)
  {
    start=temp;
  }
  else
  {
    t=start;
    while(t->link!=NULL)
     t=t->link;
    t->link=temp;
  }
}

LL10

 
#include <bits/stdc++.h>

using namespace std;

struct Node {
    int lol;
};

void Create() {
    ;
}

int main() {
    int n;
    cin >> n;
    vector <int> arr(n);
    for (int i=0; i<n; i++) cin >> arr[i];
    int d;
    cin >> d;
    bool flag=true;
    for (int i=0; i<n; i++) {
        if (arr[i]==d) {
            flag = false;
            break;
        }
    }
    if (flag) {
        cout << "Invalid Node! \n";
    }
    cout << "Linked List : ";
    for (int i=0; i<n; i++) {
        if (arr[i]==d)
            continue;
        cout << "->" << arr[i];
    }
    return 0;
}

LL11

 

#include
using namespace std;
struct node
{

};
void create();
int main() {
int n,i,d,a[100],f=0;
  cin>>n;
  for(i=0;i<n;i++)
    cin>>a[i];
  cin>>d;
  for(i=0;i<n;i++)
  {
    if(a[i]==d)
      f=1;
  }
  if(f==0)
  cout<<"Invalid position!\n";
  cout<<"Linked List : ";

  for(i=0;i<n;i++)
  {
    if(a[i]==d)
      continue;
    else
      cout<<"->"<<a[i];
  }
return 0;
}

Best router for gamers 

LL13

 
#include<iostream>
using namespace std;
struct node
{
  int data;
  struct node *next;
}*head,*temp;
bool search(int a)
{
  temp=head;
  while(temp!=0)
  {
    if(a==temp->data)
      return 1;
    temp=temp->next;
  }
  return 0;
}
int main()
{
  int n,X;
  bool status;
  cin>>n;
  head=0;
  while(n–)
  {
    struct node* new_node =(struct node*) malloc(sizeof(struct node));
    cin>>new_node->data;
    new_node->next=0;
    if(head==0)
    {
      head=temp=new_node;
    }
    else
    {
      temp->next=new_node;
      temp=new_node;
    }
  }
  cin>>X;
  status=search(X);
  if(status==1)
  {
    cout<<"Yes";
  }
  else
    cout<<"No";
  return 0;
}

LL14

 

#include <bits/stdc++.h>
using namespace std;

struct node
{
int data;
node *next;
};

void swapNodes(node **head_ref, int x, int y)
{
if (x == y) return;

node *prevX = NULL, *currX = *head_ref;
while (currX && currX->data != x)
{
prevX = currX;
currX = currX->next;
}

node *prevY = NULL, *currY = *head_ref;
while (currY && currY->data != y)
{
prevY = currY;
currY = currY->next;
}

if (currX == NULL || currY == NULL)
return;

if (prevX != NULL)
prevX->next = currY;
else
*head_ref = currY;

if (prevY != NULL)
prevY->next = currX;
else
*head_ref = currX;

node *temp = currY->next;
currY->next = currX->next;
currX->next = temp;
}

void push(node** head_ref, int new_data)
{
node* new_node =new node();

new_node->data = new_data;

new_node->next = (*head_ref);

(*head_ref) = new_node;
}

void printList(node *Node)
{
while(Node != NULL)
{
cout<<"–>"<data;
Node = Node->next;
}
}

int main()
{
node *start = NULL;

Tap on the image

Use the code: Miru2021

int n,x,y;
   cin>>n;
   for(int i=0;i<n;i++)
    {
      int a;
      cin>>a;
      push(&start,a);
    }
cin>>x>>y;
   cout << "Linked list before Swapping : ";
   printList(start);
   cout<<endl;

swapNodes(&start, x, y);

cout << "Linked list after Swapping : ";
   printList(start);

return 0;

LL15

 

#include
#include
using namespace std;
void Create();
void rev();
void disp();
int search(int);
struct node
{
  int data;
  struct node *link;
}*start;
int main()
{
  int n,i,a,b,flag1=0,flag2=0;
  start=NULL;
  cin>>n;
  for(i=0;i<n;i++)
  {
    Create();
  }
 cin>>a;

  rev();
  cout<<"\nLinked list : ";
  disp();
  if(a>n)
  {
    cout<<"\nInvalid Index!";
  }
  else
  {
    struct node *t;
    t=start;
    for(i=0;i<a-1;i++)
    {
      t=t->link;
    }
    if(a!=1&&start->data==4)
    {
      int flag=0,i=0;
      struct node *t1;
      t1=start;
      while(t1!=NULL)
      {
        if(t1->data==a)
        {
          flag=1;
          i++;
          break;
        }
        t1=t1->link;
        i++;
      }
      if(flag==0)
      {
        cout<<"\nInvalid Index!";
      }
      else
      {
    cout<<"\nNode at index="<<a<<" : "<<i; 
      }
    }
    else
    {
          cout<<"\nNode at index="<<a<<" : "<data;
    }
  }
  return 0;
}
void Create()
{
  struct node *t;
struct node* new_node =(struct node*) malloc(sizeof(struct node));
  cin>>new_node->data;
  new_node->link=NULL;
  if(start==NULL)
  {
    start=new_node;
  }
  else
  {
    t=start;
    while(t->link!=NULL)
     t=t->link;
    t->link=new_node;
  }
}

void disp()
{
  struct node *t;
  t=start;
  while(t!=NULL)
  {
    cout<<"–>"<data;
    t=t->link;
  }
}
void rev()
{
  struct node *t1,*t;
  t1=NULL;
  while(start->link!=NULL)
  {
    t=start;
    start=start->link;
    t->link=t1;
    t1=t;
  }
  start->link=t;
}

Click ont the image to know more ! 

Use the code : Miru2021

LL16

 

#include
using namespace std;
struct node
{
  int data;
  struct node *next;
}*head,*temp;
int main()
{
  int t,s;
  cin>>t;
  s=t/2;
  head=0;
  while(t–)
  {
    struct node* new_node =(struct node*) malloc(sizeof(struct node));
    cin>>new_node->data;
    new_node->next=0;
    if(head==0)
    {
      head=new_node;
      temp=new_node;
    }
    else
    {
      temp->next=new_node;
      temp=new_node;
    }
  }

  struct node *prevnode,*currnode,*nextnode;
  prevnode=0;
  currnode=nextnode=head;
  while(nextnode!=0)
  {
    nextnode=nextnode->next;
    currnode->next=prevnode;
    prevnode=currnode;
    currnode=nextnode;
  }
  head=prevnode;
  temp=head;
  cout<<"Linked list : ";
  while(temp!=0)
  {
    cout<<"–>"<data;
    temp=temp->next;
  }
  cout<<endl;
  temp=head;
  while(s–)
  {
    temp=temp->next;
  }
  cout<<"The middle element is ["<data<<"]";
  return 0;
}

Best and gaming mouse pad 

LL17

 
#include
#include
struct Node
{
    int data;
    struct Node* next;
};
void push(struct Node** head_ref, int new_data)
{
    struct Node* new_node =(struct Node*) malloc(sizeof(struct Node));
    new_node->data  = new_data;
    new_node->next = (*head_ref);
    (*head_ref)    = new_node;
}
int count(struct Node* head, int search_for)
{
    struct Node* current = head;
    int count = 0;
    while (current != NULL)
    {
        if (current->data == search_for)
           count++;
        current = current->next;
    }
    return count;
}
int main()
{
    struct Node* head = NULL;
int n,b[20],i,a,j;
   scanf("%d",&n);
  printf("Linked list : ");
  for(i=0,j=n-1;i<n;i++,j–)
  {scanf("%d",&a);
   b[j]=a;
   push(&head, a);}
  for(i=0;i<n;i++)
    printf("–>%d",b[i]);
  scanf("%d",&a);
      printf("\nCount of %d : %d",a, count(head, a));
    return 0;
}

LL18

 

#include
using namespace std;

  struct node
  {
     int num;
     node *ptr;
     node *prev;
  };
struct node* new_node =(struct node*) malloc(sizeof(struct node));
  class sll{

         node * start;
         public:
         sll()
         {
            start = NULL;
         }
         void add()
         {
            node * temp = new node;
            cin>> temp->num;
            temp->ptr = NULL;
            if(start == NULL)
            {

                  start = temp;
                  start->prev=NULL;
            }
            else
            {
                node * temp2 = start;
                while(temp2->ptr!=NULL)
                {
                    temp2= temp2->ptr;
                }
                 temp2->ptr = temp;
                 temp->prev = temp2;
            }

         }

        void show()
        {

             node *temp =start;
             while(temp!=NULL)
             {
                cout<<" "<num;
                temp = temp->ptr;
             }
        }
        void reverse()
        {

                node *temp = start;
                while(temp->ptr!=NULL)
                {
                    temp = temp->ptr;
                }

                while(temp!=NULL)
                {
                     cout<<" "<num;
                     temp = temp->prev;
                }
        }
  };

int main() {
int n;
    cin>>n;
    sll obj;
    while(n)
    {
        obj.add();
        n–;
    }
    cout<<"Linked list :";
    obj.reverse();cout<<" ";
    cout<<endl;
    cout<<"Reversed Linked list :";
    obj.show();
return 0;
}

Click on the image ! 

Use the code: Miru2021

LL19

 
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
struct node
{
    int data;
    struct node* next;
};
void Movenode(struct node** destRef, struct node** sourceRef);
struct node* SortedMerge(struct node* a, struct node* b)
{
    struct node dummy;
    struct node* tail = &dummy;
    dummy.next = NULL;
    while (1)
    {
        if (a == NULL)
        {
            tail->next = b;
            break;
        }
        else if (b == NULL)
        {
            tail->next = a;
            break;
        }
        if (a->data <= b->data)
            Movenode(&(tail->next), &a);
        else
            Movenode(&(tail->next), &b);
        tail = tail->next;
    }
    return(dummy.next);
}
void Movenode(struct node** destRef, struct node** sourceRef)
{
    struct node* newnode = *sourceRef;
    assert(newnode != NULL);
    *sourceRef = newnode->next;
    newnode->next = *destRef;
    *destRef = newnode;
}
void push(struct node** head_ref, int new_data)
{
    struct node* new_node =(struct node*) malloc(sizeof(struct node));
    new_node->data  = new_data;
    new_node->next = (*head_ref);
    (*head_ref)= new_node;
}
void printList(struct node *node)
{
    while (node!=NULL)
    {
        printf("->%d", node->data);
        node = node->next;
    }
}
int main()
{
int i,N1,N2;
scanf("%d",&N1);
scanf("%d",&N2);
int a[N1];
int b[N2];
    struct node* res = NULL;
    struct node* a1 = NULL;
    struct node* b1 = NULL;
    for(i=0;i<N1;i++)
    scanf("%d",&a[i]);
    for(i=0;i<N2;i++)
    scanf("%d",&b[i]);
    for(i=N1-1;i>=0;i–)
     push(&a1,a[i]);
    for(i=N2-1;i>=0;i–)
     push(&b1,b[i]);
    printf("Class A : ");
    printList(a1);
    printf("\nClass B : ");
    printList(b1);
    res = SortedMerge(a1, b1);
    printf("\nJoint Class : ");
    printList(res);
    return 0;
}

LL20

 
#include
using namespace std;
struct node
{
  int data;
  struct node *next;
}*head,*temp,*ref;
int main()
{
  int n;
  cin>>n;
  head=0;
  while(n–)
  {
    struct node* new_node =(struct node*) malloc(sizeof(struct node));
    cin>>new_node->data;
    new_node->next=0;
    if(head==0)
    {
      head=new_node;
      temp=new_node;
    }
    else
    {
      temp->next=new_node;
      temp=new_node;
    }
  }
  for(temp=head;temp!=0;temp=temp->next)
  {
    for(ref=temp->next;ref!=0;ref=ref->next)
    {
      if(temp->data > ref->data)
      {
        int tmp=temp->data;
        temp->data=ref->data;
        ref->data= tmp;
      }
    }
  }
  temp=head;
  cout<<"Marks : ";
  while(temp!=0)
  {
    cout<<"->"<data;
    temp=temp->next;
  }
  return 0;
}

LL21

 
#include <stdio.h>
#include<iostream>
#include <string.h>
using namespace std;
struct node
{};
int main(){
    char string1[20];
    int i, length;
    int flag = 0;
   
    //printf("Enter a string:");
    scanf("%s", string1);
   
    length = strlen(string1);
   
    for(i=0;i < length ;i++)
    {
        if(string1[i] != string1[length-i-1]){
            flag = 1;
            break;
   }
     
    /*for(i=0;i < length ;i++)
    {
     cout<<string1[i]<<" ";
        }*/
}
   
    if (flag)
    {
       
      for(i=0;i < length ;i++)
    {
     cout<<string1[i]<<" ";
      }
     
      printf("\nNot Palindrome");
    }   
    else {
     
      for(i=0;i < length ;i++)
    {
     cout<<string1[i]<<" ";
      }
     
     
     
      printf("\nIs Palindrome");
    }
    return 0;
}

LL23

 
#include <bits/stdc++.h>

using namespace std;

struct node {
    int lol;
};

int main() {
    int n;
    cin >> n;
    int arr[n];
    for (int i=0; i<n; i++)
        cin >> arr[i];
    set <int> uniq;
    cout << "List : ";
    for (int i=0; i<n; i++) {
        if (uniq.find(arr[i])!=uniq.end()) {
            continue;
        }
        cout << "->" << arr[i];
        uniq.insert(arr[i]);
    }
}

LL25

 
#include <iostream>
using namespace std;

void swap(int &a, int &b);
void swap(int *a,int *b)
 
{
  int temp=*a;
  *a=*b;
  *b=temp;
 
}
struct node
{
  int data;
  struct node *next;
}*head,*newnode,*temp;

int main()
{
  int n,count=0;
  cin>>n;
  while(n–)
  {
  newnode=new node;
  cin>>newnode->data;
  if(head==0)
  {
    head=newnode;
    temp=newnode;
  }
  else
  {
    temp->next=newnode;
    temp=newnode;
  }
  }
  temp=head;
  while(temp!=NULL && temp->next!=NULL)
  {
    swap(&temp->data,&temp->next->data);
    temp=temp->next->next;
  }
  temp=head;
  cout<<"List : ";
   while(temp!=NULL)
   {
     cout<<"->"<<temp->data;
     temp=temp->next;
   }
  return 0;
 
}

Leave a Reply

Scroll to Top