deleting a previous node in a singly linked list 
Author Message
 deleting a previous node in a singly linked list

Hi All,

Can the previous node of a given node in a singly linked list be deleted?

Thanks
Angshuman



Mon, 27 May 2002 03:00:00 GMT  
 deleting a previous node in a singly linked list
Sure, as long as you have a pointer to the node that is before the link that
you want to delete.  Make sure you draw it out on paper first so that you
understand what has to be done.


| Hi All,
|
| Can the previous node of a given node in a singly linked list be deleted?
|
| Thanks
| Angshuman
|
|



Mon, 27 May 2002 03:00:00 GMT  
 deleting a previous node in a singly linked list
Quote:

> Hi All,

> Can the previous node of a given node in a singly linked list be deleted?

> Thanks
> Angshuman

Yes, like this (pseudocode)

        /*---     search item to delete   ---*|
        |*    but remeber the previous one   */
        previtem=NULL;
        for (item=root;item!=searcheditem;item=item->next)
                previtem=item;

        /*--- remove item form list ---*/
        if (previtem) {
                previtem->next = searcheditem->next;
                }
        else {
                root = searcheditem->next;
                }

        /*--- delete the item ---*/
        free(searcheditem);



Mon, 27 May 2002 03:00:00 GMT  
 deleting a previous node in a singly linked list
Quote:

> Hi All,

> Can the previous node of a given node in a singly linked list be deleted?

> Thanks
> Angshuman

Oops,
wasn't reading to good.
Just look up the previous item like the "searcheditem" and delete this
one.


Mon, 27 May 2002 03:00:00 GMT  
 deleting a previous node in a singly linked list

yes, it can be done.
The algo is
(I am assuming that the starting addr of the list is known let  us say slist)

ptr1 = p; /*pointer to the node*/
ptr2 = slist;
ptr3= slist;
ptr2 = ptr2->link;
while (ptr2->link->data != ptr1->data)
{
    ptr2 = ptr2->link;
   ptr3 = ptr3->link;

Quote:
}

/*After exiting from this loop
*  ptr3 = ptr to the prev node to be deleted
*  ptr2 = ptr to the node to be deleted
*  ptr1 = ptr to the next victim node*/

delete(ptr2,ptr3);

HTH
Archna

Quote:

> Hi All,

> Can the previous node of a given node in a singly linked list be deleted?

> Thanks
> Angshuman

  armittal.vcf
< 1K Download


Mon, 27 May 2002 03:00:00 GMT  
 deleting a previous node in a singly linked list
Angshuman Mukherjee a crit dans le message

Quote:
>Hi All,

>Can the previous node of a given node in a singly linked list be deleted?

Try magic...

--
HS
CLC-FAQ: http://www.eskimo.com/~scs/C-faq/top.html
It's specified. But anyone who writes code like that should be
transmogrified into earthworms and fed to ducks. -- Chris Dollin CLC



Mon, 27 May 2002 03:00:00 GMT  
 
 [ 6 post ] 

 Relevant Pages 

1. Deleting a node in a linked list

2. deleting a node in a doubly linked list?

3. Delete node in linked list

4. Deleting a node from a list given a pointer to the node

5. basic sort for singly linked list...

6. Singly linked List

7. singly linked list code

8. singly linked list

9. problems with singly linked list,

10. Singly Linked Lists

11. Singly Linked List Help

12. Help on printing out singly linked list!

 

 
Powered by phpBB® Forum Software