思路:1.首先是建立鍊錶,再儲存資料。
2.進行多項式的運算。通過每一項的比較,判斷指數是否相等,相等就進行合併,不相等就不操作並找到下一項。
這道題主要是考察了鍊錶的操作,估計很多人都會被繞暈了,不知道指標指向了**。
我已開始也敗在了指向問題上,在加法操作中,把pa,pb鍊錶記憶體的資料元素全都改變了,又不知道**出問題了,後來就直接用臨時變數將要操作的鍊錶元素複製乙份,這樣就不會改變原有的資料。
//#include "stdafx.h"
#include "malloc.h"
typedef struct polymentpolynode,*polylist;
void printpolyn(polylist l);
void initpolyn(polylist *l)
void creatpolyn(polylist l) }
void addpolyn(polylist la,polylist lb)//加法
else
else
}else
}} pc->next=pa?pa:pb;//將剩下的插入pc中
printf("\np(x) + q(x) = ");
printpolyn(lc); }
void inverpolyn(polylist l1)//逆置操作
l1->next=null;
l1=pa;
p=l1;
printf("m(x) = ");
while(p->next)
} printf("\n");
}void minuspolyn(polylist la,polylist lb)//減法
else
else
}else
} }if(pa)
pc->next=pa;
else
while(pb)
printf("\np(x) - q(x) = ");
printpolyn(lc);
inverpolyn(lc);
}void printpolyn(polylist l)//列印鍊錶
}printf("\n");
}int main(int argc, char* argv)
實驗測試資料:
一元稀疏多項式計算器
實驗 一元稀疏多項式計算器 一 實驗目的 1.了解線性表的鏈式儲存結構,熟練掌握鍊錶。2.了解作為鍊錶的多項式存貯方式。3.熟悉掌握多項式加法的演算法。二 實驗原理 順序儲存的線性表有一些弱點,其一,插入與刪除元素需要大量移動元素 其二,預先分配儲存空間時必須按最大的空間來分配。其三,表長難以擴充。...
一元稀疏多項式加減
一元稀疏多項式加減 include include include define ok 1 define error 0 typedef int status typedef struct pnodepnode,polynomial 建立乙個多項式鍊錶 status creatpolynnomial...
一元稀疏多項式相加減
define crt secure no warnings include include include typedef struct polyomial poly,polyomial poly為結點指標型別 void insert poly p,poly h if q2 p exp q2 exp...