Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class node {
- public :
- int data;
- node * next;
- node(int data){
- this-> data = data;
- next = NULL;
- }
- };
- void insertHead(node* &head, int data){
- node * n = new node(data);
- n -> next = head;
- head = n;
- }
- void insert(node * &head, int data){
- node * n = new node(data);
- node * temp = head;
- while(temp -> next != NULL){
- temp = temp -> next;
- }
- temp->next = n;
- n -> next = NULL;
- }
- void print(node * &head){
- node * temp = head;
- while(temp != NULL){
- cout<<temp->data<<" ";
- temp = temp -> next;
- }
- }
- void reverseK(node* &head, int k){
- node * temp = head, *curr = head;
- node *tempPointer = NULL;
- node *prev = NULL;
- node * null_node = NULL;
- int count = 0, flag = 0;
- while(temp != NULL){
- prev = NULL;
- count = 0;
- while(temp != NULL){
- temp = curr->next;
- curr->next= prev;
- prev = curr;
- curr = temp;
- count++;
- if(count == 1){
- tempPointer = prev;
- }
- if(count == k){
- flag++;
- break;
- count = 0;
- }
- // cout<<flag<<endl;
- }
- if(flag == 1){
- null_node = head;
- head = prev;
- // print(head);
- // cout<<endl;
- //cout<<"**"<<endl;
- }
- else{
- null_node->next = prev;
- null_node = tempPointer;
- // print(head);
- // cout<<endl;
- }
- }
- }
- node * evenOdd(node * head){
- node * start = NULL, *prev = head, *current = head;
- current = head;
- if(current == NULL)
- return head;
- while(current!= NULL){
- if(current == head && current->data%2 == 1){
- start = current;
- prev = current;
- current = current->next;
- }
- else if(current->data % 2 == 1){
- if(start == NULL){
- start = current;
- prev->next = current->next;
- current->next = head;
- head = current;
- current = prev->next;
- }else{
- prev->next = current->next;
- current->next = start->next;
- start->next = current;
- current = prev->next;
- }
- }
- else{
- prev = current;
- current = prev->next;
- }
- }
- return head;
- }
- int main(){
- int n;
- cin>>n;
- int a;
- node *head = NULL;
- for(int i = 0; i < n; i++){
- cin>>a;
- if(i == 0)
- insertHead(head, a);
- else
- insert(head, a);
- }
- node * head1 = evenOdd(head);
- print(head1);
- return 0;
- }
Add Comment
Please, Sign In to add comment