对以下代码的功能描述最准确的是()LinkList *Demo(LinkList *L)// L是无头结点的单链表{LinkList *q,*p;if(L!=NULL&&L->;next!=NULL){q=L;L=L->;next;p=L;while (p->;next)p=p->;next;p->;next=q; q->;next=NULL;}return (L);}
A: 逆置线性表
B: 当表不空时,删除线性表的首个元素
C: 插入一个新的元素在表尾
D: 当表不空时,把原表的表首元素取下,并插入到表尾。
A: 逆置线性表
B: 当表不空时,删除线性表的首个元素
C: 插入一个新的元素在表尾
D: 当表不空时,把原表的表首元素取下,并插入到表尾。
举一反三
- (2)intBB(LinkList*L){LinkList*p,*q,*r;p=L->next;if(!p)return0;while(p->next){q=p;while(q->next){if(q->next->data!=p->data)q=q->next;else{r=q->next;q->next=r->next;free(r);}}p=p->next;}}Writethefunctionofthealgorithmabove.(5.0分)
- 以下算法是删除带头结点单链表L中的最小的元素,横线处应填入的语句是( )。void DelMinNode(LinkList L){ p=L->next; pre=L; if(L==NULL) return; while(p->next!=NULL) //pre指向最小元素的前驱元素,开始默认第一个结点最小,pre指向头结点 { if(p->next->data [ pre-]next->data) pre=p; } //删除pre后面的结点 p=pre->next; ;} A: free(p); pre->next=p->next; B: free(p->next);pre->next=p->next; C: pre->next=p->next; free(p); D: p->next=pre->next;free(p);
- 非空循环单链表L中,p指针指向尾结点,则以下表达式成立的是()。 A: p==L B: p->next==L C: p->next==NULL D: p==NULL
- 对于带头节点的单链表L1,其节点类型为LinkList,指出以下算法的功能。 void fun(LinkList *&L,ElemType x,ElemType y) { LinkList *p=L->next; while (p!=NULL) { if (p->data==x) p->data=y; p=p->next; } }
- 【课外练习·线性结构】在一个表头指针为L的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行 操作。 A: q->next=p->next; p=q; B: q->next=p->next; p->next=q; C: p->next=q->next; q=p; D: p->next=q->next; q->next=p;