阅读以下说明和程序流程图,将应填入(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题:
在以下几种存储结构中,哪个最适合用作链栈?并说明理由。 (1)带头节点的单链表 (2)不带头节点的循环单链表 (3)带头节点的双链表
第2题:
23、在单链表中,增加一个头节点的目的是为了 _______。
A.使单链表至少有一个节点
B.标识链表中重要节点的位置
C.方便运算的实现
D.说明单链表是线性表的链式存储结构
第3题:
假设某个含有n个元素的线性表有如下运算: Ⅰ.查找序号为i(1≤i≤n)的元素 Ⅱ.查找第一个值为x的元素 Ⅲ.插入第一个元素 Ⅳ.插入最后一个元素 Ⅴ.插入第i(1≤i≤n)个元素 Ⅵ.删除第一个元素 Ⅶ.删除最后一个元素 Ⅷ.删除第i(1≤i≤n)个元素 现设计该线性表的如下存储结构: ① 顺序表 ② 带头节点的单链表 ③ 带头节点的循环单链表 ④ 不带头节点仅有尾节点的循环单链表 ⑤ 带头节点的双链表 ⑥ 带头节点的循环双链表. 指出各种存储结构中对应运算算法的时间复杂度。
第4题:
5、在单链表中,增加一个头节点的目的是为了
A.使单链表至少有一个节点
B.标识链表中重要节点的位置
C.方便运算的实现
D.说明单链表是线性表的链式存储结构
第5题:
在单链表中,增加一个头结点的目的是为了()。
A.使单链表至少有一个节点
B.标识链表中某个重要节点的位置
C.方便插入和删除等运算的实现
D.表示单链表是线性表的链式存储结构