This is my code for double linked list.
The pointer next is OK
I have big problem in creating the prev pointer.
Take a look:
Code:
struct AkeraiosStruct {
int Value;
AkeraiosStruct * next;
AkeraiosStruct * prev;
} AkeraiosStruct;
//--------------------------------------------->
void insert_at_end (AkeraiosStruct * * ptraddr, int v)
/* Insert v as last element of list *ptraddr */
{
AkeraiosStruct * templist,prevnode;
templist = * ptraddr;
while (*ptraddr != NULL){ /* Go to end of list */
ptraddr = &((*ptraddr)->next); /* Prepare what we need to change */
if(((*ptraddr)->next)==NULL)
prevnode = *ptraddr;
}
*ptraddr = malloc(sizeof(struct AkeraiosStruct)); /* Space for new node */
(*ptraddr)->Value = v; /* Put value */
(*ptraddr)->next = NULL; /* There is no next element */
(*ptraddr)->prev = prevnode;
}
void insert_at_start(AkeraiosStruct * *ptraddr, int v)
/* Insert v as first element of list *ptraddr */
{ AkeraiosStruct * templist,prevnode;
prevnode = &((*ptraddr)->prev);
templist = *ptraddr; /* Save current start of list */
*ptraddr = malloc(sizeof(struct AkeraiosStruct)); /* Space for new node */
prevnode = &(ptraddr);
(*ptraddr)->Value = v; /* Put value */
(*ptraddr)->next = templist; /* Next element is former first */
(*ptraddr)->prev = NULL;
}
Can anyone tell me the exact problem?????