1.定义结构体
typedef struct LinkNode {
int coefficient;//系数
int exponent;//指数
struct LinkNode* next;
}*LinkList,*NodePtr;
2.初始化
LinkList initLinkList()
{
LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode));
tempHeader->coefficient = 0;
tempHeader->exponent = 0;
tempHeader->next = NULL;
return tempHeader;
}
3.打印链表
void printList(LinkList paraHeader) {
NodePtr p = paraHeader->next;
while (p != NULL)
{
printf("%d * 10^%d + ", p->coefficient, p->exponent);
p = p->next;
}
printf("\r\n");
}
4.打印结点
void printNode(NodePtr paraPtr, char paraChar)/*传入结点的指针与指针的名字*/ {
if (paraPtr == NULL) {
printf("NULL\r\n");
}
else {
printf("The element of %c is (%d * 10^%d)\r\n", paraChar, paraPtr->coefficient, paraPtr->exponent);
}
}
5.构造多项式
void appendElement(LinkList paraHeader, int paraCoefficient, int paraExponent)
{
NodePtr p, q;
//创建一个新结点
q = (NodePtr)malloc(sizeof(struct LinkNode));
q->coefficient = paraCoefficient;
q->exponent = paraExponent;
q->next = NULL;
p = paraHeader;
//寻找最后一个结点
while (p->next !