node *create(node *p) //p接收已有的表头 { node *head=p,*pn,*pt; if(p!=0) { pt=head; while(pt->next!=0) 1 ; //让pt指向已有尾结点 } char name[9]; cin>>name; while(strcmp(name,"-1")!=0) //name输入-1结束创建 { pn=new node; strcpy(pn->name,name); cin>>pn->math; if(head==0) //原为空,新结点作为首结点 { 2 ; pt=pn; //pt指向尾结点 } else //原非空,新结点添加到尾部 { pt->next=pn; 3 ; } cin>>name; } 4 ; //设置尾结点 return head; } 上述函数的作用是:向一个无序的尾部连续增加新结点,以输入姓名为“-1”结束。代码中标注1、2、3和4处的语句应选择下列哪个选项?