HOW TO RESOLVE POINTER TO ARRAY OR ARRAY OF POINTER
int *ptr[100]; int *(ptr[100]); int (*ptr[100]); int (*ptr)[100];
ARRAY OF POINTERS
int *ptr[100]; int (*ptr[100]); int *(ptr[100]);
POINTER TO ARRAY
int (*ptr)[100];
HOW TO RESOLVE POINTER TO ARRAY OR ARRAY OF POINTER
int *ptr[100]; int *(ptr[100]); int (*ptr[100]); int (*ptr)[100];
ARRAY OF POINTERS
int *ptr[100]; int (*ptr[100]); int *(ptr[100]);
POINTER TO ARRAY
int (*ptr)[100];
typedef struct _listElement { int nData; struct _listElement* pNext; } LIST; /* Reversing A Linked List Recurrsively */ void recurrsivereverse(LIST** pHead) { LIST* pCurrent = *pHead; LIST* pNext = NULL; if(pCurrent == NULL) { return; } pNext = pCurrent->pNext; recurrsivereverse(&pNext); if(pNext) { pCurrent->pNext->pNext = pCurrent; pCurrent->pNext = NULL; *pHead = pNext; } return; } /* Reversing A Linked List Iteratively */ void iterativereverse(LIST** pHead) { LIST* pCurrent = *pHead; LIST* pPrev = NULL; LIST* pNext = NULL; while(pCurrent) { pNext = pCurrent->pNext; pCurrent->pNext = pPrev; pPrev = pCurrent; pCurrent = pNext; } *pHead = pPrev; return; }
GET THE INFIX EXPRESSION IN A BUFFER INITIALIZE PRINT QUEUE INITIALIZE OPERATOR STACK REVERSE THE INFIX EXPRESSION BUFFER WHILE BUFFER IS NOT EMPTY READ A TOKEN FROM THE BUFFER IF THE TOKEN IS A OPERAND ENQUEUE THE TOKEN IN PRINT QUEUE ELSE IF THE TOKEN IS A OPERATOR IF OPERATOR STACK EMPTY PUSH THE TOKEN IN THE OPERATOR STACK ELSE IF TOS (OPERATOR STACK) IS HIGHER PRIORITY OPERATOR THAN TOKEN ENQUEUE ( POP FROM OPERATOR STACK) IN PRINT QUEUE PUSH THE TOKEN IN THE OPERATOR STACK ELSE PUSH THE TOKEN IN THE OPERATOR STACK END IF END IF ELSE IF THE TOKEN IS ")" PUSH THE TOKEN IN THE OPERATOR STACK ELSE IF THE TOKEN IS "(" IF OPERATOR STACK IS EMPTY INFIX EXPRESSION IS NOT VALID ELSE WHILE TOS (OPERATOR STACK) IS NOT ")" AND OPERATOR STACK NOT EMPTY ENQUEUE ( POP FROM OPERATOR STACK) INTO PRINT QUEUE END WHILE IF OPERATOR STACK EMPTY INFIX EXPRESSION IS NOT VALID ELSE POP FROM OPERATOR STACK /* POP ")" */ END IF END IF END IF END WHILE WHILE OPERATOR STACK IS NOT EMPTY ENQUEUE ( POP FROM OPERATOR STACK) INTO PRINT QUEUE END WHILE REVERSE THE PRINT QUEUE
GET THE INFIX EXPRESSION IN A BUFFER INITIALIZE PRINT QUEUE INITIALIZE OPERATOR STACK WHILE BUFFER IS NOT EMPTY READ A TOKEN FROM THE BUFFER IF TOKEN IS OPERAND ENQUEUE THE TOKEN IN PRINT QUEUE ELSE IF TOKEN IS A OPERATOR IF OPERATOR STACK IS EMPTY PUSH THE TOKEN IN THE OPERATOR STACK ELSE IF THE TOS (OPERATOR STACK) IS HIGHER PRIORITY OPERATOR THAN TOKEN ENQUEUE ( POP FROM OPERATOR STACK) INTO PRINT QUEUE PUSH THE TOKEN IN THE OPERATOR STACK ELSE PUSH THE TOKEN IN THE OPERATOR STACK END IF END IF ELSE IF TOKEN IS "(" PUSH THE TOKEN IN THE OPERATOR STACK ELSE IF TOKEN IS ")" IF OPERATOR STACK IS EMPTY INFIX EXPRESSION IS NOT VALID ELSE WHILE TOS (OPERATOR STACK) IS NOT "(" AND OPERATOR STACK NOT EMPTY ENQUEUE ( POP FROM OPERATOR STACK) INTO PRINT QUEUE END WHILE IF OPERATOR STACK EMPTY INFIX EXPRESSION IS NOT VALID ELSE POP FROM OPERATOR STACK /* POP "(" */ END IF END IF END IF END WHILE WHILE OPERATOR STACK IS NOT EMPTY ENQUEUE ( POP FROM OPERATOR STACK) INTO PRINT QUEUE END WHILE