Circular LL
Circular LL
// editor1
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node *next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node *head=nullptr,*tail=nullptr;
void insertNode(int d)
{
Node *n=new Node(d);
if(head==nullptr)
{
head=n;
tail=n;
head->next=head;
tail->next=head;
}
else
{
tail->next=n;
n->next=head;
tail=n;
}
}
void find()
{
int even=0,odd=0;
Node *temp=head;
do
{
if(temp->data%2==0)
{
even++;
}
else
{
odd++;
}
temp=temp->next;
}while(temp!=head);
if(even>0)
{
cout<<even<<endl;
}
else
{
cout<<"Nil"<<endl;
}
if(odd>0)
{
cout<<odd<<endl;
}
else
{
cout<<"Nil"<<endl;
}
}
int main()
{
int count;
cin>>count;
if(count<=0)
{
cout<<"Invalid input";
return 0;
}
for(int i=0;i<count;i++)
{
int num;
cin>>num;
insertNode(num);
}
find();
// editor2
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node *next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node *head=nullptr,*tail=nullptr;
void insert(int d)
{
Node *cur=head;
Node *n=new Node(d);
if(head==nullptr)
{
head=n;
tail=n;
head->next=head;
tail->next=tail;
}
else
{
n->next=cur;
tail->next=n;
head=n;
}
}
void display()
{
Node *temp=head;
do
{
cout<<temp->data<<" ";
temp=temp->next;
}
while(temp!=head);
}
int main()
{
int count;
cin>>count;
if(count<0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<count;i++)
{
int num;
cin>>num;
insert(num);
}
display();
}
// editor3
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node*prev;
Node(int val)
{
data=val;
next=nullptr;
prev=nullptr;
}
};
Node*head= nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
Node*cur=head;
tail->next=newnode;
tail=newnode;
newnode->next=head;
}
}
void insertatk(int pos,int val)
{
Node*newnode=new Node(val);
Node*cur=head;
int i=1;
if(pos==1)
{
newnode->next=head;
newnode->prev=tail;
head->prev=newnode;
head=newnode;
tail->next=head;
}
else
{
while(cur->next!=head && i<pos-1)
{
cur=cur->next;
i++;
}
newnode->prev=cur;
newnode->next=cur->next;
cur->next=newnode;
}
}
void display()
{
Node*cur=head;
do{
cout<<cur->data<<" ";
cur=cur->next;
}while(cur!=head);
cout<<endl;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int k;
cin>>k;
if(k>=-1000 && k<=10000)
{
insertatend(k);
}
}
int p,v;
cin>>p>>v;
if(p<=0 || (p>n+1))
{
cout<<"Invalid position"<<endl;
return 0;
}
if(p>=-100 && p<=100)
{
insertatk(p,v);
display();
}
}
// editor4
#include<iostream>
#include<iomanip>
using namespace std;
class Node
{
public:
float data;
Node*next;
Node(float val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr,*tail=nullptr;
void insertatend(float val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
newnode->next=head;
tail=newnode;
}
}
void findmax()
{
Node*temp=head;
float max=temp->data;
do{
if(temp->data>=max)
{
max=temp->data;
}
temp=temp->next;
}while(temp!=head);
cout<<fixed<<setprecision(2)<<max<<endl;
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
float k;
cin>>k;
insertatend(k);
}
findmax();
}
// editor5
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=newnode;
tail->next=newnode;
}
else
{
tail->next=newnode;
newnode->next=head;
tail=newnode;
}
}
void display()
{
Node*cur=head;
int v=0;
do{
if(cur->data>0)
{
cout<<cur->data<<" ";
v++;
}
cur=cur->next;
}while(cur!=head);
if(v==0)
{
cout<<"List is empty"<<endl;
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
display();
}
PRAC
// editor1
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr,*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
tail=newnode;
tail->next=head;
}
}
void findmin()
{
Node*temp=head;
int min=temp->data;
do{
if(temp->data<=min)
{
min=temp->data;
}
temp=temp->next;
}while(temp!=head);
cout<<min<<endl;
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
findmin();
}
// editor2
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
tail=newnode;
tail->next=head;
}
}
void display(int n)
{
Node*temp=head;
int odd=0,even=0;
do{
if(temp->data%2!=0)
{
odd+=temp->data;
}
else
{
even++;
}
temp=temp->next;
}while(temp!=head);
if(odd>0)
{
cout<<odd<<endl;
}
if(even==n)
{
cout<<"Nil"<<endl;
}
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
display(n);
}
// editor3
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
tail=newnode;
tail->next=head;
}
}
void display()
{
Node*cur=head;
while(cur->next!=head)
{
if(cur!=head)
{
cout<<cur->data<<" ";
}
cur=cur->next;
}
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
display();
}
// editor4
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
tail=newnode;
head=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
tail=newnode;
tail->next=head;
}
}
void insertatk(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
newnode->next=head;
head=newnode;
tail->next=newnode;
}
}
void display()
{
Node*cur=head;
cout<<cur->data<<" ";
cur=cur->next->next;
while(cur!=head)
{
cout<<cur->data<<" ";
cur=cur->next;
};
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
int v;
cin>>v;
insertatk(v);
display();
}
// editor5
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node*next;
Node(int val)
{
data=val;
next=nullptr;
}
};
Node*head=nullptr;
Node*tail=nullptr;
void insertatend(int val)
{
Node*newnode=new Node(val);
if(head==nullptr)
{
head=newnode;
tail=newnode;
head->next=head;
tail->next=head;
}
else
{
tail->next=newnode;
tail=newnode;
tail->next=head;
}
}
void display(int n)
{
Node*cur=head;
int even=0,evenc=0,odd=0,neg=0;
do{
if(cur->data%2==0 && cur->data>=0)
{
even+=cur->data;
evenc++;
}
if(cur->data%2!=0)
{
odd++;
}
if(cur->data<=0)
{
neg++;
}
cur=cur->next;
}while(cur!=head);
if(even>0)
{
cout<<even<<endl;
}
if(odd==n || neg==n || odd>0)
{
cout<<"Nil"<<endl;
}
}
int main()
{
int n;
cin>>n;
if(n<=0)
{
cout<<"Invalid input"<<endl;
return 0;
}
for(int i=0;i<n;i++)
{
int k;
cin>>k;
insertatend(k);
}
display(n);
}