let me post my code first

Code:
#include <stdio.h>
#include <stdlib.h>

struct stackNode{
       char data;
       struct stackNode *nextPtr;
       };
typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;

#define SIZE 20;

void convertTpPostfix( char infix[], char postfix[] );
int isOperator( char c );    /* Checks to c if its an oprator */
int precedence ( char operator1, char operator2 ); /*Acoording to the prcedence -1, 0, 1 */
void push ( StackNodePtr *topPtr, char value );
char pop ( StackNodePtr *topPtr );
char stackTop ( StackNodePtr topPtr );
int isEmpty( StackNodePtr topPtr );
void printStack( StackNodePtr topPtr );

int main(void)
{
 StackNodePtr startPtr = NULL;
 char infix[SIZE], postfix[SIZE];

 printf( "Enter a posfix expresion: " );
 fgets( infix, SIZE-1, stdin );



      system("PAUSE");
      return 0;
}
void covertToPostfix( char infix[], char postfix[] )
{

}

int isOperator( char c )
{
 if ( c == '+' || c == '-' || c == '*' ||c == '/' ||c == '^' ||c == '%' )
    return 1;
 else
     return 0;
}

int precedence ( char operator1, char operator2 )
{
 if ( operator1 == operator2 )
    return 0;
 else if ( operator1 < operator2 )
      return -1;
 else
     return 1;
}

void push ( StackNodeptr *topPtr, char value )
{
 StackNodePtr newptr;

 newPtr = malloc( sizeof( stackNode) );

 if ( newPtr ){
    newPtr -> data = value;
    newPtr -> nextptr = *topPtr;

    *topPtr = newPtr;
 }
 else
     fprintf(stderr, "Out of memory to store %c", value );
}
char pop ( StackNodePtr *topPtr )
{
 StackNodePtr = tempPtr;
 char storeValue;

 tempPtr = *topPtr;

 storevalue = (*topPtr) -> data;
 *topPtr = (*topPtr) -> nextPtr;
 free( tempPtr );
 return storeValue;
}

char stacktop( StackNodePtr topPtr )
{
 return (topPtr -> data);
}

int isEmpty( StackNodePtr topPtr )
{
 return topPtr == NULL;
}

void printStack( StackNodePtr topPtr )
{
 if ( topPtr == NULL )
    fprintf(stderr,"No memory available\n" );
 else{
      while ( topPtr != NULL ){
            printf("%c --> ", topPtr -> data );
            topPtr = topPtr -> nextPtr;
     }
     printf("NULL\n");
}
Okay my book sayd i should creat a programm that takes in ainfix and changes it to a postfix ...thats what i have done so far i am just stuck on this part ......

This the algorithm givin in the book ...

1)Push a left parenthesis '(' onto the stack ..
2) Append a right parenthesis ')' to the end of infix..
3) while stack is not empty , read infix from left ot right and do the following
if the current charater in infix is a digit, copy it to next element of postfix..
if the curretn character in infix is a left parenthesis , push it onto a stack.
if the current character in infix is an operator
pop operator (if these are any) at the top of the stack while they have equal or higher precedence than the current operator, and insert the popped operators in postfix.
push the current character in infix onto stack
if the current character in infix is a right parenthesis.
pop operators from the top of the stack and inser them in postfix until left parenthesis is at the top of the stack..
pop (and discard) the left parenthesis from the stack...

Okay i just want to know if what i have done till know is okay the first and secound ..about the parenthesis confuses me ...Extra help i wont mind ...

Cheers