Thursday 10 November 2011

Implementation of Singly Linked List




A Linked list is a chain of structs or records called Nodes. Each node has at least two members, one of which points to the next Node in the list and the other holds the data. These are defined as Single Linked Lists because they can only point to the next Node in the list but not to the previous.



// Adding a Node at the Beginning of the List


void addBeg(int num)
{
struct Node *temp;

temp=(struct Node *)malloc(sizeof(struct Node));
temp->Data = num;

if (Head == NULL)
{
//List is Empty
Head=temp;
Head->Next=NULL;
}
else
{
temp->Next=Head;
Head=temp;
}
}



//Adding a Node at the end of the list

void addEnd(int num)
{
struct Node *temp1, *temp2;

temp1=(struct Node *)malloc(sizeof(struct Node));
temp1->Data=num;

// Copying the Head location into another node.
temp2=Head;

if(Head == NULL)
{
// If List is empty we create First Node.
Head=temp1;
Head->Next=NULL;
}
else
{
// Traverse down to end of the list.
while(temp2->Next != NULL)
temp2=temp2->Next;

// Append at the end of the list.
temp1->Next=NULL;
temp2->Next=temp1;
}
}


// Adding a new Node at specified position

void addAt(int num, int loc)
{
int i;
struct Node *temp, *prev_ptr, *cur_ptr;

cur_ptr=Head;

if(loc > (length()+1) || loc <= 0)
{
printf("\nInsertion at given location is not possible\n ");
}
else
{
// If the location is starting of the list
if (loc == 1)
{
addBeg(num);
}
else
{
for(i=1;i<loc;i++)
{
prev_ptr=cur_ptr;
cur_ptr=cur_ptr->Next;
}

temp=(struct Node *)malloc(sizeof(struct Node));
temp->Data=num;

prev_ptr->Next=temp;
temp->Next=cur_ptr;
}
}
}

// Counting number of elements in the List

int length()
{
struct Node *cur_ptr;
int count=0;

cur_ptr=Head;

while(cur_ptr != NULL)
{
cur_ptr=cur_ptr->Next;
count++;
}
return(count);
}

// Deleting a node from List depending upon the data in the node.

int delNodeData(int num)
{
struct Node *prev_ptr, *cur_ptr;

cur_ptr=Head;

while(cur_ptr != NULL)
{
if(cur_ptr->Data == num)
{
if(cur_ptr==Head)
{
Head=cur_ptr->Next;
free(cur_ptr);
return 0;
}
else
{
prev_ptr->Next=cur_ptr->Next;
free(cur_ptr);
return 0;
}
}
else
{
prev_ptr=cur_ptr;
cur_ptr=cur_ptr->Next;
}
}

printf("\nElement %d is not found in the List", num);
return 1;
} If the value to be deleted is the head of the list.


If the value to be deleted is not the head of the list.


Similarly if we want to delete a node based on its location in the list.

// Deleting a node from List depending upon the location in the list.

int delNodeLoc(int loc)
{
struct Node *prev_ptr, *cur_ptr;
int i;

cur_ptr=Head;

if(loc > (length()) || loc <= 0)
{
printf("\nDeletion of Node at given location is not possible\n ");
}
else
{
// If the location is starting of the list
if (loc == 1)
{
Head=cur_ptr->Next;
free(cur_ptr);
return 0;
}
else
{
for(i=1;i<loc;i++)
{
prev_ptr=cur_ptr;
cur_ptr=cur_ptr->Next;
}

prev_ptr->Next=cur_ptr->Next;
free(cur_ptr);
}
}
return 1;
}

// Displaying list contents

void display()
{
struct Node *cur_ptr;

cur_ptr=Head;

if(cur_ptr==NULL)
{
printf("\nList is Empty");
}
else
{
printf("Elements in the List: ");
//traverse the entire linked list
while(cur_ptr!=NULL)
{
printf(" -> %d ",cur_ptr->Data);
cur_ptr=cur_ptr->Next;
}
printf("\n");
}
} Reversing a list.

//Reversesing a Linked List

void reverse()
{
struct Node *prev_ptr, *cur_ptr, *temp;

cur_ptr=Head;
prev_ptr=NULL;

while(cur_ptr != NULL)
{
temp=prev_ptr;
prev_ptr=cur_ptr;

cur_ptr=cur_ptr->Next;
prev_ptr->Next=temp;
}

Head=prev_ptr;
}






Sunday 8 May 2011

IPL Live Streaming


Do you missing IPL matches due to heavy work load. Don't worry now! I am coming with solution to  see IPL online special for you. Below is URL link, click it.. and enjoy IPL Matches live...
                                               



                                    www.crictime.com/server3.htm

Friday 29 April 2011

Top 10 Questions of Interview---------Tech IT



1. Tell me about yourself:
2. Why did you leave your last job?
3. What experience do you have in this field?
4. Do you consider yourself successful?
5. What do co-workers say about you?
6. What do you know about this organization?
7. What have you done to improve your knowledge in the last year?
8. Are you applying for other jobs?
9. Why do you want to work for this organization?
10. What kind of salary do you need?

Welcome this is my first post



Friends I am very glad to meet you on blogger.Please wait while this blogsite is under construction.Thanks for your patients.