Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions C++/basic.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#include <iostream>

using namespace std;

//Declare Node
struct Node{
int num;
Node *next;
};

//Declare starting (Head) node
struct Node *head=NULL;

//Insert node at start
void insertNode(int n){
struct Node *newNode=new Node;
newNode->num=n;
newNode->next=head;
head=newNode;
}

//Traverse/ display all nodes (print items)
void display(){
if(head==NULL){
cout<<"List is empty!"<<endl;
return;
}
struct Node *temp=head;
while(temp!=NULL){
cout<<temp->num<<" ";
temp=temp->next;
}
cout<<endl;
}

//delete node from start
void deleteItem(){
if(head==NULL){
cout<<"List is empty!"<<endl;
return;
}
cout<<head->num<<" is removed."<<endl;
head=head->next;
}
int main(){

display();
insertNode(10);
insertNode(20);
insertNode(30);
insertNode(40);
insertNode(50);
display();
deleteItem(); deleteItem(); deleteItem(); deleteItem(); deleteItem();
deleteItem();
display();
return 0;
}
12 changes: 12 additions & 0 deletions C++/deletion.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include<iostream>
#include<queue>
using namespace std;

struct Node{
int data;
struct Node* left, *right;
};
struct Node* newnode(int key){
struct Node* temp=new Node;
temp->key=key;
}
55 changes: 55 additions & 0 deletions C++/inplaceRot.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#include <iostream>

using namespace std;

int gcd(int a, int b)
{
if(b==0)
return a;
else
return gcd(b, a%b);
}

void ArrayRotate (int A[], int n, int k)
{
int d=-1,i,temp,j;
for(i=0;i<gcd(n,k);i++)
{
j=i;
temp=A[i];
while(1)
{
d=(j+k)%n;
if(d==i)
break;
A[j]=A[d];
j=d;
}
A[j]=temp;
}
}

void displayArray(int A[],int n)
{
int i;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<"\n";
}

int main()
{
int n,i,k;
cout<<"Enter size of the Array\n";
cin>>n;
int A[n];
cout<<"Enter Array elements\n";
for(i=0;i<n;i++)
cin>>A[i];
cout<<"Enter the value of k\n";
cin>>k;
displayArray(A,n);
ArrayRotate(A,n,k);
displayArray(A,n);
return 0;
}
92 changes: 92 additions & 0 deletions C++/insertion.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#include<iostream>
#include<queue>
using namespace std;

struct Node{
int data;
Node *left;
Node *right;
};
//Fun to create a new node
Node *CreateNode(int data){
Node* newNode=new Node();
if(!newNode){
cout<<"Memory Error!\n";
return NULL;
}
newNode->data=data;
newNode->left=newNode->right=NULL;
return newNode;
}
//Fun to insert element in binary tree
Node* InsertNode(Node* root, int data)
{
int temp;
// If the tree is empty, assign new node address to root
if(root== NULL)
{
root=CreateNode(data);
return root;
}
// Else, do level order traversal until we find an empty
// place, i.e. either left child or right child of some
// node is pointing to NULL.
queue<Node*> q;
q.push(root);

while (!q.empty())
Node *temp=q.front();
q.pop();

if(temp->left!=NULL)
q.push(temp->left);
else {
temp->left = CreateNode(data);
return root;
}

if (temp->right != NULL)
q.push(temp->right);
else {
temp->right = CreateNode(data);
return root;
}
}


/* Inorder traversal of a binary tree */

void inorder(Node* temp)
{
if (temp == NULL)
return;

inorder(temp->left);
cout << temp->data << ' ';
inorder(temp->right);
}

// Driver code
int main()
{
Node* root = CreateNode(10);
root->left = CreateNode(11);
root->left->left = CreateNode(7);
root->right = CreateNode(9);
root->right->left = CreateNode(15);
root->right->right = CreateNode(8);

cout << "Inorder traversal before insertion: ";
inorder(root);
cout << endl;

int key = 12;
root = InsertNode(root, key);

cout << "Inorder traversal after insertion: ";
inorder(root);
cout << endl;

return 0;
}

26 changes: 26 additions & 0 deletions C++/rotation.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include<iostream>
using namespace std;


void RotArray(int a[],int n, int k){
int b[n];
//Moving k position
for(int i=0;i<n;i++){
b[(i+k)%n]=a[i];
}

//display values
for(int i=0;i<n;i++){
cout<<b[i]<<" ";
}
}
int main(){
int n,k; cin>>n>>k;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
RotArray(a,n,k);

return 0;
}
16 changes: 16 additions & 0 deletions C++/test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#include<iostream>

using namespace std;
struct node
{
int data;
node *next;
};
int *head==NULL;
//inserting elements
void insert(int value){
node *ptr=new node;
}
int main(){

}
33 changes: 33 additions & 0 deletions C++/test1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include<iostream>
using namespace std;

struct Node
{
int data;
Node* next;
};
Node* deleteFirstNode(Node* head){
if(head==NULL){
return NULL;
}
//move the head pointer to next node
Node* tempNode=head;
head=head->next;
delete tempNode;

return head;
}

Node* removeLastNode(Node* head){
if(head==NULL){
return NULL;
}
if(head->next==NULL){
delete head;
return NULL;
}
//first find second last node
Node* second_last=head;
while(second_last->next->next!=NULL)
second_last=second_last->next;
}
25 changes: 25 additions & 0 deletions C++/tree1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include<bits/stdc++.h>
using namespace std;

struct node{
int data;
struct node *left;
struct node *right;

node(int val) //val that is store in data part
{
data=val;
left=NULL;
right=NULL;
}
};

int main()
{
struct node* root = new node(1);
root->left = new node(2);
root->right = new node(3);
root->left->left = new node(4);

return 0;
}
42 changes: 42 additions & 0 deletions C++/vector.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include<iostream>
#include<vector>
using namespace std;

void disVector(vector<int> A){
vector<int>::iterator it;
for(it=A.begin();it!=A.end();it++){
cout<<*it<<" ";
cout<<"\n";
}
}
int main(){
vector<int> A(4,0);
for(int i=0;i<4;i++){
cin>>A[i];
}
disVector(A);

cout<<"Adding 5 in the end\n";
A.push_back(5);
disVector(A);

cout<<"Size:"<<A.size()<<"\n";

//Deleting last element from the vector
cout<<"Deleting last element\n";
A.pop_back();
disVector(A);
cout<<"Size:"<<A.size()<<"\n";

//Inserting 8 at index 2
cout<<"inserting 8 at index 2\n";
A.insert(A.begin()+2,8);
disVector(A);

//Deleting element at index 3
cout<<"Deleting element at index 3\n";
A.erase(A.begin()+3);
disVector(A);

return 0;
}