find the palindrome using self referential structure - C PROGRAMMING LANGUAGE @

C PROGRAMMING LANGUAGE @

LEARN TODAY LEAD TOMORROW

Monday, June 12, 2017

find the palindrome using self referential structure

                                                                         
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct Node
{
    char data;
    struct Node *next;
} node;



void Append(node **head_ref, char data)
{
    node *new_node;
    new_node=(node *)malloc(sizeof(node));
    node *last;
    last=*head_ref;
    new_node->data=data;
    new_node->next=NULL;

    if(*head_ref==NULL)
    {
        *head_ref=new_node;
        return ;
    }
    else
    {
        while(last->next!=NULL)
        {
            last=last->next;
        }
        last->next=new_node;
        return ;

    }

}

void Reverse(node **temp)
{
    node *current,*prev,*next;
    current=(*temp);
    prev=NULL;
    while(current!=NULL)
    {
        next=current->next;
        current->next=prev;
        prev=current;
        current=next;
    }
    (*temp)=prev;
}

void Compare(node **temp,node **temp1)
{
    node *head,*head2;
    head=(*temp);
    head2= (*temp1);

    while(head->next!=NULL&& head2->next!=NULL&&head->data == head2->data)
    {
        head = head->next;
        head2 = head2->next;

    }
     if(head->next==NULL && head2->next==NULL)
        {
            printf("The word is  palindrome :)");
        }
        else{

             printf("The word is not palindrome");
        }


}


int main()
{
    char user[15];
    printf("Enter the Word: ");
    gets(user);
    node *head=NULL,*head2=NULL;

    int i;
    for(i=0; user[i]!='\0'; i++)
    {
        Append(&head,user[i]);
        Append(&head2,user[i]);
    }


    Reverse(&head2);

    Compare(&head,&head2);


    return 0;
}

output:
                                                                             

No comments:

Post a Comment