解析这段代码int CreateFromTail(PLinklist *head) //尾插法创建链表 { PNode *pTemp,*pHead; int c; //存放系数 int exp; //存放指数 int i=1; //计数器提示用户输入第几项 pHead=*head; scanf("%d,%d",&c,&exp); while(c!=0) //系数为0表示结束输入 { pTemp=(PLinklist)malloc(sizeof(PNode)); if(pTemp) { pTemp->exp=exp; //接收指数 pTemp->coef=c; //接收系数 pTemp->next=NULL; pHead->next=pTemp; pHead=pTemp; scanf("%d,%d",&c,&exp); } else return 0; } return 1; }
时间: 2024-03-30 21:35:19 浏览: 18
这段代码是一个创建链表的函数,使用的是尾插法。函数名为CreateFromTail,参数为一个指向指针的指针head,表示头指针的地址。函数返回值为int类型,表示创建链表是否成功。
函数首先定义两个指针变量pTemp和pHead,pHead表示链表尾部的指针,pTemp表示新建的节点。然后定义变量c和exp,分别用来存储输入的系数和指数。变量i用来记录当前用户输入的是第几项。
函数使用while循环进行链表的创建,当输入的系数为0时,表示输入结束,循环退出。在循环中,函数首先使用malloc函数为pTemp分配内存空间,如果分配成功,则将输入的系数和指数存储到pTemp的coef和exp成员中,然后将pTemp添加到链表中,即将pTemp赋值给pHead的next指针,同时将pHead指针指向pTemp,表示pTemp是链表的最后一个节点。最后再次使用scanf函数获取下一个节点的系数和指数,直到输入结束。
函数返回1表示链表创建成功,返回0表示创建失败。