【单项选择题】
对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该结点赋值a,则执行:p=(structnode*)malloc(sizeof(structnode));p->data=a;和()。
A、A.p->next=top;p=top;
B、B.top->next=p;p=top;
C、C.p->nex=top;top=p;
D、D.top=top->next;pe=top;