- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以列为主.ppt
Data Structure in C ─ 陣列與結構;大綱;陣列;陣列的抽象資料型態(ADT:abstract data type)(是一種資料型態,它的組織方式使得物件的規格與物件上的運算之規格和該物件的內部表示法與運算的實作法是獨立的);二維陣列;三維陣列;三維陣列 (續);三維陣列 (續);n維陣列;結構和聯結;結構和聯結;多項式抽象資料型態;多項式的ADT;在C中表示多項示的方法是使用typedef建立polynomial型態
#define MAX_DEGREE 101 /*Max degree of polynomial+1*/
typedef struct{
int degree;
float coef[MAX_DEGREE];
} polynomial;
? 若a的型態是polynomial,且nMAX_DEGREE,
則多項式A(x)= 可表示為:
a.degree=n
a.coef[i]=an-i, 0 i n;多項式抽象資料型態 (續);多項式抽象資料型態 (續);void padd (int starta, int finisha, int startb, int finishb, int *stard, int *finishd)
{
/* add A(x) and B(x) to obtain D(x) */
float coefficient;
*startd=avail;
while (starta= finisha startb = finishb)
switch(COMPARE(terms[starta].expon, terms[startb].expon))
{
case –1: /* a expon b expon*/
attach(terms[startb].coef, terms[startb].expon);
startb++;
break;
case 0: /* equal exponents*/
coefficient = terms[starta].coef+terms[startb].coef;; if (coefficient)
attach(coefficient, terms[starta].expon);
starta++;
startb++;
break;
case –1: /* a expon b expon*/
attach(terms[starta].coef, terms[starta].expon);
starta++;
break;
}
/* add in remaining terms of A(x)*/
for( ; starta=finisha; starta++)
attach(terms[starta].coef, terms[starta].expon);
/* add in remaining terms of B(x)*/
for( ; startb=finishb; startb++)
attach(terms[startb].coef, terms[startb].expon);
*finishd=avail-1;
};void attach(float coefficient, int exponent)
{
/* add a new term to the polynomial*/
if(avail=MAX_TERMS) {
fprintf(stderr,”Too many terms in the polynomial\n”);
文档评论(0)