设单链表的结点结构为(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分)】
设线性链表中结点的结构为(data,next)。已知指针q所指结点是指针结点p的直接前驱,若在*q与*p之间插入结点*s,则应执行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
A.s↑.link:=p↑.link;p↑.link:=s
B.q↑.link:=s;s↑.link:=p
C.p↑.link:=s↑.link;s↑.link:=p
D.p↑.link:=s;s↑.link:=q
函数min()的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空
include <stdio.h>
struct node
{ int data;
struct node *next;
};
int min(struct node *first)/*指针first为链表头指针*/
{ struct node *p; int m;
p=first->next; re=p->data; p=p->next;
for(;p!=NULL;p=【 】)
if(p->data<m ) re=p->data;
return m;
}
设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
A.head==0
B.head->next==0
C.head->next==head
D.head!=0
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)
A.p=rear;rear=rear→next;free(p);
B.rear=rear→next;free(p);
C.rear=rear→next→next;free(p);
D.p=rear→next→next;rear→next=p→next;free(p);
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。
struct node
{ int data;struct node *next; }*p,*q,*r;
现要将这个链表构成一个环,以下()操作是正确的。
A.p->next=q->next
B.r->next=p
C.p->next=r
D.r->next=q->next->next
有以下结构体说明和变量定义,如图所示: struet node {int data; struct node*next;}*p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是
A.p->next=q->next;
B.p->next=p->next->next;
C.p->next=r;
D.p=q->next;
A.q->next=r->next; p->next=r,r->next=q;
B.p->next=r,q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r,
D.r->next=q;P->next=r;q->next=r->next;
请改正程序指定部位的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
[试题源程序]
include<stdio.h>
include<stdlib.h>
typedef struct aa
{
int data;
struct aa *next;
}NODE;
fun(NODE *h)
{
int max=-1;
NODE *p;
/***********found************/
p=h;
while(p)
{
if(p->data>max)
max=p->data;
/************found************/
p=h->next;
}
return max;
}
outresult(int s, FILE *Pf)
{
fprintf(pf, "\nThe max in link: %d\n", s);
}
NODE *creatlink(int n, int m)
{
NODE *h, *p, *s, *q;
int i, x;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=9999;
for(i=1; i<=n; i++)
{
s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
p->next=NULL;
return h;
}
outlink(NODE *h, FILE *pf)
{
NODE *p;
p=h->next;
fprintf(Pf, "\nTHE LIST:\n\n HEAD");
while(P)
{
fprintf(pf, "->%d", P->datA); p=p->next;
}
fprintf(pf, "\n");
}
main()
{
NODE *head; int m;
head=cteatlink(12,100);
outlink(head, stdout);
m=fun(head);
printf("\nTHE RESULT"\n");
outresult(m, stdout);
}