Re: LinkedList Pointer (REPOST - diff version)
- From: manoj1978@xxxxxxxxx
- Date: 31 Aug 2005 23:18:47 -0700
r.devaraj@xxxxxxxxx wrote:
> 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.,
It contains the address of list-> next.
that is address of the field next,inside the structure pointed by list.
>
>
> 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.
It will pass the address of next in the structure pointed by head.
Push will allocate a node,put 42 inside that.and store address of that
node in this address.
So after returning from push,head->next will contain address of newly
allocated node.
>
>
> if you couldn't get me completely,
> http://cslibrary.stanford.edu/105/LinkedListProblems.pdf
>
> Thanks.
> Deva.
.
- References:
- LinkedList Pointer (REPOST - diff version)
- From: r.devaraj@xxxxxxxxx
- LinkedList Pointer (REPOST - diff version)
- Prev by Date: Re: while (1) vs. for ( ;; )
- Next by Date: Re: The importance of prototypes
- Previous by thread: LinkedList Pointer (REPOST - diff version)
- Next by thread: LinkedList Pointer (REPOST - diff version)
- Index(es):
Relevant Pages
|