//d1为指向双向循环链表的头指针//
//ai,x为双向循环链表结点数据域类型//
//i为整型//
//p,s为辅助指针//
{
p?d1;
i?0;
while((13))and(p^.next.data<>ai)
{ p?p^.next;
(14)
}
if p^.next^.data=ai then
{new(s);
(15) ;
s^.next?p^.next;
(16) ;
s^.prior?p;
p^.next?s;
i?i+1
}
else i?0;
return (i)
}
回答以下问题:
?设dl指向的双向循环链表为非空表,链表第一个结点数据域在算法描述时应表示为 ( 17 )
?设d1=(18,45,36,27),ai=36,x=90,上述算法执行后,d1=( (18) )。
?上述算法中若数据域值为ai的结点存在,则指针s指向的结点位于指针P指向的结点
( 19 ) (之前/之后)。
②C++语言描述形式
符号&开头的参数为引用参数。dl指向链表结点数据域用dl->data表示,前、后链域分
别用d1->prior、d1->next表示。算法中,NULL为空指针。
Algorithm insertdl2(&dl,ai,x)
//insertdl2函数的类型为整型
//dl为指向双向循环链表的头指针
//ai,x为双向循环链表结点数据域类型
//i为整型
//p,s为辅助指针
{
p=dl
i=0; 、
while((20) &&p->next->data!=ai){
p=p->next;
(21);
}
if(p->next->data==ai){
s=new dnode;
(22) ;
s->next=p->next:
(23) ;
s->prior=p;
p->next=s;
++i;
} .
else i=0;
return i;
}
回答以下问题:
设d1指向的双向循环链表为非空表,链表第一个结点数据域在算法描述时应表示
为(24) 。
?设d1=(18,45,36,27),ai=36,x=90,上述算法执行后,d1=( (25) )。
?上述算法中若数据域值为ai的结点存在,则指针s指向的结点位于指针P指向的结点
(26)(之前/之后)。
77.学生成绩管理数据库中包含:学生信息表studtab.dbf、课程表coursetab.dbf、成绩表
scoretab.dbf.他们的结构如下:
字段名
字段类型与长度
标题
SnO C(12) 学号
Sn锄e C(10) 姓名
SSeX C(2) 性别
major C(20) 专业
字段名
字段类型与长度 标题
C110 C(8) 课程号
Cname C(20) 课程名
credit N(3,1) 学分
chour N(2) 课时

