阅读以下说明和程序流程图,将应填入(n)处的字句写在对应栏内。[说明]当一元多项式中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指受和对应系数。为了便于进行运算,用带头节点的单链表存储,头节点

题目

阅读以下说明和程序流程图,将应填入(n)处的字句写在对应栏内。

[说明]

当一元多项式中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指受和对应系数。

为了便于进行运算,用带头节点的单链表存储,头节点中存储多项式中的非零项数,且各节点按指数递减顺序存储。例如:多项式8x5-2x2+7的存储结构为:

流程图图3-1用于将pC(Node结构体指针)节点按指数降序插入到多项式C(多项式POLY指针)中。

流程图中使用的符号说明如下:

(1)数据结构定义如下:

define EPSI 1e-6

struct Node{ /*多项式中的一项*/

double c; /*系数*/

int e; /*指数*/

Struct Node *next;

};

typedef struct{ /*多项式头节点*/

int n; /*多项式不为零的项数*/

struct Node *head;

}POLY;

(2)Del(POLY *C,struct Node *p)函数,若p是空指针则删除头节点,否则删除p节点的后继。

(3)fabs(double c)函数返回实数C的绝对值。

[图3-1]

(1)

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

假设某个含有n个元素的线性表有如下运算: Ⅰ.查找序号为i(1≤i≤n)的元素 Ⅱ.查找第一个值为x的元素 Ⅲ.插入第一个元素 Ⅳ.插入最后一个元素 Ⅴ.插入第i(1≤i≤n)个元素 Ⅵ.删除第一个元素 Ⅶ.删除最后一个元素 Ⅷ.删除第i(1≤i≤n)个元素 现设计该线性表的如下存储结构: ① 顺序表 ② 带头节点的单链表 ③ 带头节点的循环单链表 ④ 不带头节点仅有尾节点的循环单链表 ⑤ 带头节点的双链表 ⑥ 带头节点的循环双链表. 指出各种存储结构中对应运算算法的时间复杂度。


O(n)

第2题:

在单链表中,增加一个头结点的目的是为了()。

A.使单链表至少有一个节点

B.标识链表中某个重要节点的位置

C.方便插入和删除等运算的实现

D.表示单链表是线性表的链式存储结构


方便运算的实现

第3题:

23、在单链表中,增加一个头节点的目的是为了 _______。

A.使单链表至少有一个节点

B.标识链表中重要节点的位置

C.方便运算的实现

D.说明单链表是线性表的链式存储结构


C

第4题:

5、在单链表中,增加一个头节点的目的是为了

A.使单链表至少有一个节点

B.标识链表中重要节点的位置

C.方便运算的实现

D.说明单链表是线性表的链式存储结构


方便运算的实现

第5题:

在以下几种存储结构中,哪个最适合用作链栈?并说明理由。 (1)带头节点的单链表 (2)不带头节点的循环单链表 (3)带头节点的双链表


带头结点的单链表

第6题:

在单链表中,增加头节点的目的是( )。

A. 使单链表不为空

B. 方便运算的实现

C. 增加存储空间

D. 说明单链表是线性表的链式存储实现


正确答案:A
头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点目的是为了便于运算的实现。本题答案为A。

第7题:

在单链表中,增加头节点的目的是

A.方便运算的实现

B.使单链表至少有一个节点

C.标识表节点中首节点的位置

D.说明单链表是线性表的链式存储实现


正确答案:A
解析:头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点) 的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点的目的是为了便于运算的实现。

第8题:

若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用______存储方式最节省时间。

A.单链表

B.双链表

C.单循环链表

D.带头节点的双循环链表


正确答案:D

第9题:

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。

【说明】

已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:


正确答案:(1)pa->data=pb->data (2)pc->next=pa (3)pc=pb (4)pb=pb->next (5)pc->next=pa?pa:pb
(1)pa->data=pb->data (2)pc->next=pa (3)pc=pb (4)pb=pb->next (5)pc->next=pa?pa:pb 解析:本题考查程序流程图和有序链表的归并。
题目要求我们归并头指针分别为La和Lb的有序单链表,组成一个新的有序单链表 Lc,而Lc又是指向La的。首先,我们来了解一下单链表的结构。单链表中一般有两个域,一个是数据域,用来存放链表中的数据;另一个是指针域,用来存放指向下个结点的指针。其归并的过程应该是先比较链表La和Lb中第一个元素,将较小的从其链表中取出放到k中,再取下一个结点的值去比较,重复这个过程,直到一个链表被全部取完,再将另一个链表剩下的部分连接到Lc后面即可。
下面,我们来看程序流程图的内容。首先是用两个指针变量pa和pb分别指向La和Lb的当前待比较插入的结点,而pc指向Lc表中当前最后一个结点。再下面是一个条件判断语句,其作用是判断链表La和Lb是否为空,如果有一个为空,只要将另一个链表剩下的部分连接到Lc后面,程序应该就可以结束了。
第(1)空是条件判断语句的条件,根据我们上面的分析,再结合流程图下面的内容,我们可以知道,这个条件语句的作用是比较当前待插入的两个值的大小,而指针变量pa和pb分别指向La和Lb的当前待比较插入的结点,因此,此空的答案为 pa->data=pb->data。
第(2)空是在条件为真的情况下执行的语句,如果条件判断为真,应该将pa所指结点连接到pc所指结点后面,因此,pc所指结点的指针域应该存放pa所指结点的地址。所以,此空的答案为pc->next=pa。
第(3)空和第(4)空都是在条件为假的情况下执行的语句,如果条件为假,说明 pb所指结点的值小于pa所指结点的值,应该将pb所指结点连接到pc所指结点后面,图中已经实现这一功能,要我们完成的是在插入后的后继工作。由于pc指向的是Lc表中当前最后一个结点,在插入一个结点后,要修改pc的值。在将pb所指结点插入后,链表中的最后一个结点就是pb所指结点,第(3)空的答案应该为pc=pb。执行完这些功能后,指针pb应该要往后移动,即指向下一个结点,第(4)用来完成这个功能,所以答案为pb=pb->next。
在前面,我们已经讲到如果链表La和Lb有一个为空,只要将另一个链表剩下的部分连接到Lc后面即可。第(5)空就是用来完成这个功能的,但我们不知道具体是哪个链表为空,还需要判断,因此,此空答案为pc->next=pa?pa:pb。