- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Data Structures实习三 多项式运算.ppt
Data Structures實習三 多項式運算 Instructor: Ching-Chi Lin林清池 助理教授 chingchi.lin@ Department of Computer Science and EngineeringNational Taiwan Ocean University Outline * 多項式的運算 多項式的儲存方式 多項式的加法 多項式的乘法 多項式的計算加分題 多項式的運算 * 寫一個程式處理多項式的相加與相乘。 Ex: 黑色框:項。 紅色框:係數。 綠色框:次數。 係數有可能是負數或浮點數。 次數一定為零或正整數。 多項式的儲存方式 * 使用typedef來建立一種新結構型態,來儲存每一項的資訊 typedef struct { float coef; //係數 unsigned int expon; //次數 }polynomial; 使用該結構型態的陣列來存放所有多項式的每一項資訊 polynomial p[MAX_TERM]; 定義一個常數,來決定每一個陣列的項數上限 #define MAX_TERM 100 多項式的儲存方式 * 所有的多項式都存在同一個陣列中。 儲存所有多項式的陣列需可以被所有函式存取。 全域變數。 傳入pointer。 一個avail offset儲存目前第一個可用的空間。 一個多項式需要兩個offset,紀錄開頭與結尾。 開頭與結尾的offset變數,可能在某些函式中變更。 多項式的儲存方式 * 把兩個多項式 和 儲存在陣列中。 startA,start B :表示A,B的第一項的索引。 finishA,finishB:表示A,B的最後一項的索引。 avail:表示陣列中下一個可用的空閒位置之索引。 coef 2 1 1 5 3 1 0 expon 1000 0 4 3 2 0 0 startA finisA startB finisB avail 0 1 2 3 4 5 6 多項式的儲存方式 * 任何多項式至少會佔去一個項的空間,如果該項的係數為0,表示此多項式為0多項式。 任何多項式運算的結果,其初始值為0多項式。 Avail指向的位置一定不被任何多項式佔用。 coef 0 0 … expon 0 0 … startA finisA 0 1 … avail 加入一個次項至多項式 * 找到要加入的位置。 對次數來說,p[x-1]y 且 p[x]=y 如果已有該次項,則不用加入。 如果目標為0多項式,直接寫入。 如果加入的目標為0,則直接跳過。 為多項式新增一個項的空間。 0多項式則可以跳過。 要注意空間是否用完。 把所有次數低於新增目標的項往後位移一格。 寫入要加入的項。 加入一個次項至多項式 Pseudo Code * for(ctr=*start ; ctr = *end p[ctr].expon expon ; ctr++ ); Extend end with 1 term; for(ctr2 = *end ; ctr2 ctr ; ctr2-- ) p[ctr2]=p[ctr2-1]; Insert the target term; 加入一個次項至多項式 演算法 * poly_attach(int *start, int *end, float coef, int expon); Attach target: coef 3 5 0 … expon 5 3 0 … start end avail coef 7 expon 2 avail end 0 2 0 0 0 2 4 1 0 4 1 7 2 多項式的加法 * 同次項目,係數相加。 項數可能增加,需注意溢位問題。 Ex: 多項式的加法 Pseudo Code * while(A and B are not end yet) { if(A term’s degree B term’s) add A term into result; move A to next term; else if (A turm’s degree B turm’s) add B term into result; move B to next term; else add A term wi
您可能关注的文档
- Booz & Company.ppt
- Borna Disease in a Dog with Lethal Meningoencephalitis.ppt
- British Literature before the 16th Century.ppt
- byWang Xiaomiao.ppt
- C++STL中的几个基本数据结构简 介.ppt
- Cancer Classification with Data-dependent Kernels.ppt
- Case presentation Eclampsia.ppt
- CE 230-Engineering Fluid Mechanics.ppt
- CE1 week 3.ppt
- Ch5 牛顿运动定律的应用.ppt
- Data Structures实习八 运算式计算.ppt
- Data Structures(数据结构)Course 11 Advanced Sorting.ppt
- Decentralization and Performance Evaluation.ppt
- Development Implementation on Embedded uClinux.ppt
- Development of Urinary & Reproductive Systems.ppt
- dHt = HtA - HtB = 0 m.ppt
- DIFFERENTIAL AMPLIFIER.ppt
- Dimensioni e popolazione.ppt
- Discrimination and the Health of Asian Americans.ppt
- Distributed Hash Tables.ppt
最近下载
- 毕业设计(论文)年产15万吨合成氨合成工段毕业设计.doc VIP
- 年产8万吨苯乙烯工艺设计论文 -毕业设计论文.doc VIP
- 毕业设计:年产3.26万吨聚氯乙烯生产车间工段的设计.doc VIP
- 毕业设计(论文)-年产25万吨湿法磷酸毕业设计.doc VIP
- 绣春刀电影剧本(绣春刀原创剧本).docx VIP
- 年产3.26万吨聚氯乙烯聚合工段的设计毕业设计.doc VIP
- 赏花拍花不识花花盲她来扫.PDF VIP
- 血栓与止血检验的临床应用 (2).ppt VIP
- 年产5万吨电解铜的电解车间毕业设计_毕业设计论文.doc VIP
- 【艺恩数据】2025年TikTok用户转战小红书跨越语言与文化的社交迁徙报告.docx
文档评论(0)