设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指
设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y,的新结点,若将结点y插入结点x之后,则需要执行以下语句:__________;__________;【华中理工大学2000一、4(2分)】
设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y,的新结点,若将结点y插入结点x之后,则需要执行以下语句:__________;__________;【华中理工大学2000一、4(2分)】
A.q=p->next;p->data=q->data;p->next=q->next;free(q)
B.q=p->next;q->data=p->data;p->next=q->next;free(q)
C.q=p->next;p->next=q->next;free(q)
D.q=p->next;p->data=q->data;free(q)
以下为单链表的插入运算,分析算法,请在______处填上正确的语句。
void insert_lklist(lklist head,datatype x,int i)
/*在表head的第i个位置上插入一个以x为值的新结点*/
{ p=find_lklist(head,i-1);
if(p==NULL)error("不存在第i个位置");
else{s=______;s—>data=x;
s—>next=______;
p—>next=s;
}
}
A.p->next=f
B.p->next=f和f=p
C.f=p->next
D.f->next=p和f=p
A.q—>next=s—>next;s—>next=p;
B.s—>next=P;q—>next=s—>next;
C.p—>next=s—>next;s—>next=q;
D.s—>next=q;p—>next=s—>next;
A.head==NULL
B.head->next=NULL
C.head->next=head
D.head!=NULL
下列算法用于判断带头结点的循环双链表A是否对称相等,请在算法中的一填上正确的语句。
int dlink_symmetry(dlklist s)
{ j=true;
p=s—>next;
q=s—>prior;
while(p!=q)&(______)
if(p—>data=q—>data)
{ (______);
(______);
}
else
j=false;
return(j);
}
# define NULL 0
void Traversal(NODE。 head)
(NODE*p;
p= head;
/*p为工作指针。/
do
(printf("%d/n", p- >data);
〉while(p! = NULL);
函数中空格部分的选项为:
A. head= p- > next
B. p=head- >next
C. p=p- > next
D. head=head- > next
在一个单链表中,若要删除P结点的后续结点,则执行()。
A.P↑.next:=P↑.next↑.next;
B.P:=P↑.next;P↑.next:=P↑.next↑.next;
C.free(P↑.next);
D.P:=P↑.next↑.next;