首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言编译error:expected ')' before '*' token解决思路

2012-11-07 
C语言编译error:expected ) before * tokenC/C++ code/********************************************

C语言编译error:expected ')' before '*' token

C/C++ code
/************************************************************* * * 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");}


编译时出错
error:expected ')' before '*' token

出错行已在上面标示


[解决办法]
你定义的类型是stackP,而pushInStack和popStack参数是stackp。

热点排行