LinkedList Pointer (REPOST - diff version)





Some typo and confusion in previous post
(http://groups.google.com/group/comp.lang.c/browse_thread/thread/5e1f7437701250c4/c83fdc9a2d49e9ac?hl=en#c83fdc9a2d49e9ac)
made it difficult for me to fetch correct answers.
Here's the original problem.

Consider Linked List

struct node{
int data;
struct node * next;
}list;


No problem until you are dealing with a pointer variable(list).
there, you can access
>> memory where it is pointing to.
>> own address of pointer variable.

but think in case &(list->next)
>>you can just access the target.
>> no clue about (atlest for me, now) what pointer comes to picture
or where it is stored.,


Description:

Consider foll. routines.

a function to add a node in the list

void Push(struct node** headRef, int newData);
Given an int and a reference to the head pointer (i.e. a struct
node** pointer to the head pointer), add a new node at the head of the
list with the standard 3-step-link-in: create the new node, set its
..next to point to the current head, and finally change the head to
point to the new node.


and a routine using it is,


void BasicsCaller() {
struct node* head;
int len;
head = BuildOneTwoThree(); // Start with {1, 2, 3}
Push(&head, 13); // Push 13 on the front,
// yielding {13, 1, 2, 3}
// (The '&' is because head is
//passed
// as a reference pointer.)
Push(&(head->next), 42); // Push 42 into the second
//position
// yielding {13, 42, 1, 2, 3}
// Demonstrates a use of '&' on
// the .next field of a node.
// (See technique #2 below.)
}



First call for push(&head,13) is obvious and works fine.


Now this is the single question:
Just explain what happens in the call Push(&(head->next), 42)
what is passed to Push and what it is done in push.


if you couldn't get me completely,
http://cslibrary.stanford.edu/105/LinkedListProblems.pdf

Thanks.
Deva.

.



Relevant Pages

  • LinkedList Pointer (REPOST - diff version)
    ... struct node * next; ... No problem until you are dealing with a pointer variable. ... void Push(struct node** headRef, int newData); ... Given an int and a reference to the head pointer (i.e. a struct ...
    (comp.lang.c)
  • Re: Stack with file access?.
    ... >> first record from the file or else an infinite loop. ... > of passing it a double pointer... ... int stackName; ... struct node * nextPtr; ...
    (comp.lang.c)
  • Re: LinkedList Pointer (REPOST - diff version)
    ... > Here's the original problem. ... > struct node * next; ... > No problem until you are dealing with a pointer variable. ... > node** pointer to the head pointer), add a new node at the head of the ...
    (comp.lang.c)
  • Re: Linked list declaration
    ... int Insert(node **head, int data) ... If you have a node *head; and want to delete the first node, ... you need to change that pointer. ...
    (comp.lang.c)
  • Re: linked lists
    ... >> why do you have a pointer to a pointer to a node p?? ... > Because I need to modify the original pointer 'head'. ... struct node *next; ... struct node *newnode; ...
    (comp.lang.c)