C语言编译error:expected ')' before '*' token
/************************************************************* * * operate BitTree * ************************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct BitNode{ char ele; struct BitNode *lchild; struct BitNode *rchild;}*BitTree;typedef struct stack{ BitTree BTP; struct stack *next;}*stackP;int i=0;//according to picture 6.8char bitTreeArr[]={'A','B','C','#','#','D','E','#','G','#','#','F','#','#','#'};void FinOrderTraverse(BitTree p){ if(p!=NULL) { FinOrderTraverse(p->lchild); FinOrderTraverse(p->rchild); printf("%c ",p->ele); }}->void pushInStack(stackp *head,BitTree p){ stackp sp; if((sp=malloc(sizeof(struct stack)))==NULL) { printf("overflow,malloc failed in pushInStack.\n"); exit(1); } if(*head==NULL) { *head=sp; } else { sp->next=*head; *head=sp; }}->void popStack(stackp *head,BitTree *p){ stackp sp; sp=*head; *head=sp->next; *p=sp->BTP; free(sp);}void MidInorderTraverse(BitTree p){ stackP head=NULL; while(p!=NULL || head!=NULL) { if(p) { pushInStack(&head,p); p=p->lchild; } else { popStack(&head,&p); printf("%c ",p->ele); p=p->rchild; } }}void MidOrderTraverse(BitTree p){ if(p!=NULL) { MidOrderTraverse(p->lchild); printf("%c ",p->ele); MidOrderTraverse(p->rchild); }}void PreOrderTraverse(BitTree p){ if(p!=NULL) { printf("%c ",p->ele); PreOrderTraverse(p->lchild); PreOrderTraverse(p->rchild); }}void createBitTree(BitTree *BT){ if(i<strlen(bitTreeArr)) { if(bitTreeArr[i]=='#') { *BT=NULL; i++; } else { if(((*BT)=malloc(sizeof(struct BitNode)))==NULL) { printf("overflow,malloc failed in createBitTree.\n"); exit(1); } (*BT)->ele=bitTreeArr[i]; i++; createBitTree(&(*BT)->lchild); createBitTree(&(*BT)->rchild); } } }int main(){ void createBitTree(BitTree *p); void PreOrderTraverse(BitTree p); void MidOrderTraverse(BitTree p); void FinOrderTraverse(BitTree p); ->void pushInStack(stackp *head,BitTree p); ->void popStack(stackp *head,BitTree *p); void MidInorderTraverse(BitTree p); BitTree head; createBitTree(&head); //create BitTree printf("BitTree nodes print in preOrder are:"); PreOrderTraverse(head); //preOrder traverse BitTree printf("\n"); printf("BitTree nodes print in midOrder are:"); MidOrderTraverse(head); //midOrder traverse BitTree printf("\n"); printf("BitTree nodes print in finOrder are:"); FinOrderTraverse(head); //finOrder traverse BitTree printf("\n"); printf("BitTree nodes print in midInOrder are:"); MidInorderTraverse(head); printf("\n");}