#include #include #include typedef int ElemType; /*单 项 链 表 的 声 明 */ typedef struct PolynNode{ int coef; // 系 数 int expn; // 指 数 struct PolynNode *next; }PolynNode,*PolynList; /*正 位 序 (插 在 表 尾 )输 入 n 个 元 素 的 值 , 建 立 带 表 头 结 构 的 单 链 线 性 表 */ /*指 数 系 数 一对一对输 入 */ void CreatePolyn(PolynList &L,int n) { int i; PolynList p,q; L=(PolynList)malloc(sizeof(PolynNode)); // 生 成 头 结 点 L->next=NULL; q=L; printf("成 对 输 入 %d 个 数 据 \n",n); for(i=1;icoef,&p->expn); //指 数 和 系 数 成 对 输 入 q->next=p; q=q->next; } p->next=NULL; } // 初 始 条 件 : 单 链 表 L 已 存 在 // 操 作 结 果 : 依 次 对 L 的 每 个 数 据 元 素 调 用 函 数 vi()
一旦 vi()失败,则操 作 失败 void PolynTraverse(PolynList L,void(*vi)(ElemType, ElemType)) { PolynList p=L->next; while(p) { vi(p->coef, p->expn); if(p->next) { printf(" + "); //“+”号的输出,最后一项后面没有“+” } p=p->next; } printf("\n"