diff --git a/C++/Algorithms/Sorting/BubbleSort.cpp b/C++/Algorithms/Sorting/BubbleSort.cpp index 8ea567467..e9c64d177 100644 --- a/C++/Algorithms/Sorting/BubbleSort.cpp +++ b/C++/Algorithms/Sorting/BubbleSort.cpp @@ -25,7 +25,7 @@ int main() { int arr[13] = {5, 4, 9, 123, 58, 37, 324, 444, 699, 347, -1, 0, 200}; int n = sizeof(arr) / sizeof(arr[0]); - bubblesort(arr, n, compare); + bubblesort(arr, n); for (int i = 0; i < n; i++) printf("%d ", arr[i]); diff --git a/C++/Data Structure/reverseLinkedlist.cpp b/C++/Data Structure/reverseLinkedlist.cpp new file mode 100644 index 000000000..6936d6e50 --- /dev/null +++ b/C++/Data Structure/reverseLinkedlist.cpp @@ -0,0 +1,187 @@ +#include +using namespace std; +class Node{ + public: + int data; + Node*next; + Node(int data){ + this->data=data; + next=NULL; + } +}; +class Pair{ + public: + Node* head; + Node* tail; +}; +Pair reverseLL_2(Node* head){ + if(head==NULL || head->next==NULL){ + + Pair an; + an.head=head; + an.tail=head; + return an; + } + Pair ans=reverseLL_2(head->next); + ans.tail->next=head; + head->next=NULL; + Pair an; + an.head=ans.head; + an.tail=head; + return an; + +} +Node* reverseLL_Better(Node*head){ + return reverseLL_2(head).head; + } +Node* enterElement(Node* head){ + + int data; + cin>>data; + Node* newNode=new Node(data); + if(head==NULL){ + head=newNode; + return head; + } + Node* temp=head; + while (temp->next!=NULL) + { + temp=temp->next; + } + temp->next=newNode; + return head; + + +} +Node* insertNode(Node* head){ + cout<<"Enter the lenght of linked list you want to reverse"<>lenght; + cout<<"Enter data"<data<<" "; + head=head -> next; + } + cout<next==NULL){ + return head; + } + Node* ans=reverseList(head->next); + Node* temp=ans; + while (temp->next!=NULL) + { + temp=temp->next; + } + temp->next=head; + head->next=NULL; + return ans; + +} +Node* reverseList_3(Node* head){ + if(head==NULL || head->next==NULL){ + return head; + } + Node* ans=reverseList(head->next); + Node* tail=head->next; + tail->next=head; + head->next=NULL; + return ans; + +} +Node* reverseLL_4(Node* head){ + Node* cur=head; + Node* pre=NULL; + Node* next=cur; + if(head==NULL || head->next==NULL){ + return head; + } + while (cur!=NULL) + { + next=cur->next; + cur->next=pre; + pre=cur; + cur=next; + + } + head=pre; + return head; + +} +int main() +{ + Node* head=NULL; + head=insertNode(head); + cout<<"The entered linked list is "<>input; + switch (input) + { + case 1: + { + + head=reverseList(head); + cout<<"The reverse linked list is "<