找考题网-背景图
问答题

【说明】
当一元多项式
aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。
为了便于进行运算,用带头节点的单链表存储,头节点中存储多项式中的非零项数,且各节点按指数递减顺序存储。例如:多项式8x5-2x2+7的存储结构为:


函数中使用的预定义符号如下:
#define EPSI le-6
struct Node( /*多项式中的一项*/
double c; /*系数*/
int e; /*指数*/
struct Node *next;
;
typedef struct /*多项式头节点*/
int n; /*多项式不为零的项数*/
struct Node *head;
POLY;
【函数】
void Del(POLY *C, struct Node *p)
/*若p是空指针则删除头节点,否则删除p节点的后继*/

struct Node *t;
/*C是空指针或C没有节点*/
if(C==NULL||C->head==NULL)return;
if( (1) )/*删除头节点*/
t=C->head;
C->head=t->next;
return;
/*if*/
t=p->next;
p->next=t->next;
;/*Del*/
void Insert(POLY *C, struct Node *pC)
/*将pC节点按指数降序插入到多项式C中*/
/*若C中存在pC对应的指数项,则将系数相加;若其结果为零,则删除该节点*/

struct Node *t, *tp;
/*pC为空指针或其系数近似为零*/
if(pC==NULL || fabs(pC->c) < EPSI)return;
if(C->head==NULL) /*若C为空, 作为头节点插入*/
C->head=pC;
pC->next=NULL;
C->n++;
return;
/*if*/
/*若pC的指数比头节点的还大, 插入到头节点之前*/
if(pC->e>C->head->e)
(2) ;
C->head=pC;
C->n++;
return;
/*if*/
(3) ;
t=C->head;
while(t!=NULL)
if(t->e>pC->e)
tp=t;
t=t->next;

else if(t->e==pC->e)/*C中已经存在该幂次项*/
t->c+=pC->c;/*系数相加*/
if(fabs(t->c)<EPSI)/*系数之和为零*/
(4) ;/*删除对应节点*/
C->n--;

(5) ;

else t=NULL;/*C中已经不存在该幂次项*/
/*while*/
if(t==NULL)/*适当位置插入*/
pC->next=tp->next;
tp->next=pC;
C->n++;
/*if*/
;/*Insert*/

【参考答案】

(A) p==NULL
(B) pC->next=C->head->next
(C) tp=NULL
(D) Del(C, tp)
(E) break
热门试题

问答题【说明】 下面的程序先构造Point类,再顺序构造Ball类。由于在类Ball中不能直接存取类Point中的xCoordinate及yCoordinate属性值,Ball中的toString方法调用Point类中的toStrinS方法输出中心点的值。在MovingBsll类的toString方法中,super.toString调用父类Ball的toString方法输出类Ball中声明的属性值。 【Java代码】 Point.java文件 public class Point private double xCoordinate; private double yCoordinate; public Point() public Point(double x,double y) xCoordinate=x; yCoordinate=y; public String toStrthg() return ( +Double.toString(xCoordinate)+ , +Double.toString(yCoordinate)+ ) ; other methods Ball.java文件 public class Ball private (1) ; 中心点 private double radius; 半径 private String color; 颜色 public Ball() public Ball(double xValue, double yValue, double r) 具有中心点及其半径的构造方法 center= (2) ; 调用类Point中的构造方法 radius=r; public Ball(double xValue, double yValue, double r, String c) 具有中心点、半径和颜色的构造方法 (3) ; 调用3个参数的构造方法 color=c; public String toString() return A ball with center +center.toString() + ,radius +Double.toString(radius)+ ,color +color; other methods class MovingBall (4) private double speed; public MovingBall() public MoyingBall(double xValue, double yValue, double r, String c, double s) (5) ; 调用父类Ball中具有4个参数的构造方法 speed=s; public String toString() return super.toString()+ ,speed +Double.toString(speed); other methods public class test public static void main(String args[]) MovingBall mb=new MovingBall(10,20,40, green ,25); System.out.println(mb);

问答题0..1 (2) 1..* (3) 1 (4) 0..*

问答题采购订单