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
18 changes: 18 additions & 0 deletions HackerRank/Delete a node.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@



SinglyLinkedListNode* deleteNode(SinglyLinkedListNode* llist, int position) {
int cnt=0;
SinglyLinkedListNode* temp=llist;

while(cnt<position-1){
temp=temp->next;
cnt++;
}
if(position==0) {
llist=temp->next;
}
temp->next=temp->next->next;

return llist;
}
18 changes: 18 additions & 0 deletions HackerRank/Left Rotation.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include <iostream>
using namespace std;
#include <vector>
int main(){
int n1,n2;
cin>>n1>>n2;
vector <int> vect(n1);
for(int i=0;i<n1;++i){
cin>>vect[i];
}
n2=n2%n1;
for(int j=n2;j<n1;++j){
cout<<vect[j]<<" ";
}
for(int j=0;j<n2;++j){
cout<<vect[j]<<" ";
}
}
100 changes: 100 additions & 0 deletions HackerRank/arrays-DS.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#include <bits/stdc++.h>

using namespace std;

string ltrim(const string &);
string rtrim(const string &);
vector<string> split(const string &);

/*
* Complete the 'reverseArray' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts INTEGER_ARRAY a as parameter.
*/

vector<int> reverseArray(vector<int> a) {
vector<int>result;
for(int i=a.size()-1;i>=0;i--){
result.push_back(a[i]);
}
return result;
}

int main()
{
ofstream fout(getenv("OUTPUT_PATH"));

string arr_count_temp;
getline(cin, arr_count_temp);

int arr_count = stoi(ltrim(rtrim(arr_count_temp)));

string arr_temp_temp;
getline(cin, arr_temp_temp);

vector<string> arr_temp = split(rtrim(arr_temp_temp));

vector<int> arr(arr_count);

for (int i = 0; i < arr_count; i++) {
int arr_item = stoi(arr_temp[i]);

arr[i] = arr_item;
}

vector<int> res = reverseArray(arr);

for (size_t i = 0; i < res.size(); i++) {
fout << res[i];

if (i != res.size() - 1) {
fout << " ";
}
}

fout << "\n";

fout.close();

return 0;
}

string ltrim(const string &str) {
string s(str);

s.erase(
s.begin(),
find_if(s.begin(), s.end(), not1(ptr_fun<int, int>(isspace)))
);

return s;
}

string rtrim(const string &str) {
string s(str);

s.erase(
find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(),
s.end()
);

return s;
}

vector<string> split(const string &str) {
vector<string> tokens;

string::size_type start = 0;
string::size_type end = 0;

while ((end = str.find(" ", start)) != string::npos) {
tokens.push_back(str.substr(start, end - start));

start = end + 1;
}

tokens.push_back(str.substr(start));

return tokens;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

/*
* For your reference:
*
* SinglyLinkedListNode {
* int data;
* SinglyLinkedListNode* next;
* };
*
*/

SinglyLinkedListNode* insertNodeAtPosition(SinglyLinkedListNode* llist, int data, int position) {
SinglyLinkedListNode*temp=llist;
int cnt=0;
SinglyLinkedListNode*node1=new SinglyLinkedListNode(data);
if(position==1){
node1->next=llist;
llist=node1;
}
else{
while(cnt<position-1) {
cnt++;
temp=temp->next;
}
node1->next=temp->next;
temp->next=node1;
}

return llist;
}
6 changes: 6 additions & 0 deletions HackerRank/insert the node at head of linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SinglyLinkedListNode* insertNodeAtHead(SinglyLinkedListNode* llist, int data) {
SinglyLinkedListNode* temp=new SinglyLinkedListNode(data);
temp->next=llist;
llist=temp;
return llist;
}
15 changes: 15 additions & 0 deletions HackerRank/insert the node at the tail of linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
SinglyLinkedListNode*insertNodeAtTail( SinglyLinkedListNode* head,int data){
SinglyLinkedListNode*temp=head;
SinglyLinkedListNode*node1=new SinglyLinkedListNode(data);
if(head==0){
head=node1;
}
else{
while(temp->next!=NULL){
temp=temp->next;
}
temp->next=node1;

}
return head;
}
18 changes: 18 additions & 0 deletions HackerRank/print in reverse.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
SinglyLinkedListNode* reversePrint(SinglyLinkedListNode* llist) {
if(llist==NULL || llist->next==NULL){
return llist;
}
SinglyLinkedListNode* curr=llist;
SinglyLinkedListNode* prev=NULL;
SinglyLinkedListNode* forward=NULL;

while(curr!=NULL){
forward=curr->next;
curr->next=prev;
prev=curr;
curr=forward;


}
return prev;
}
10 changes: 10 additions & 0 deletions HackerRank/print the element of linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
void printLinkedList(SinglyLinkedListNode* head) {
SinglyLinkedListNode*temp=head;
while(temp!=NULL){
cout<<temp->data<<endl;;
temp=temp->next;
}



}
20 changes: 20 additions & 0 deletions HackerRank/reverse a linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@


SinglyLinkedListNode* reverse(SinglyLinkedListNode* llist) {
if(llist==NULL || llist->next==NULL){
return llist;
}
SinglyLinkedListNode* curr=llist;
SinglyLinkedListNode* prev=NULL;
SinglyLinkedListNode* forward=NULL;

while(curr!=NULL){
forward=curr->next;
curr->next=prev;
prev=curr;
curr=forward;


}
return prev;
}