更多"阅读下面的算法: LinkList mynote(LinkList "的相关试题:
[简答题]阅读下面的算法:
LinkList mynote(LinkList L)//L是不带头结点的单链表的头指针
if(L&&L->next)
q=L;L=L->next; p=L;
S1: while(p->next); p=p->next;
S2: p->next=q; q->next=NULL;
return L;
请回答下列问题:
说明语句S2的功能。
[简答题]设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复找出单链表中结点值最小的结点,并输出之,然后将该结点从中删除,直到单链表空为止,最后再删除表头结点。
[单项选择]单链表中,增加头结点的目的是为了()
A. 运算上的方便
B. 标识单链的位置
C. 为了使单链表统一长度,便于管理
D. 说明单链表是线性表的链式存储实现
[填空题]对于一个具有n个结点的单链表,在已知p结点后插入一个新结点的事件的时间复杂性为______,在给定值为x的结点后插入一个新结点的时间复杂性为______。
[简答题]
假设以带头结点的单链表表示有序表,单链表的类型定义如下:
typedef struct node{
int data;
struct node*next;
}LinkNode,*LinkList;
编写算法,输入n个整数构造一个元素值互不相同的递增有序链表(即相同的整数只取一
个)。算法的函数原型给定为
LinkList f 34(int n);
[填空题]函数main( )的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空。
#include<stdio.h>
struct node
int data;
struct node * next;
int main(struct node * first)/*指针first为链表头指针*/
struct node * p;int m;
p=first->next;m=p->data;p=p->next;
for(; p!=NULL;p=______)
if(p->data<m)m=p->data;
return m;
[单项选择]带头结点的单链表head为空的判断条件是______。
A. head=NIL
B. head->next=NIL
C. head->next=head
D. head<>NIL
[单项选择]单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现将从单链表中删除指针p所指的下一结点。下面的操作序列中哪一个是正确的
A. q:=p↑.link;p↑.link:=q↑.link
B. p↑.link:=q↑.link;q:=p↑.link
C. q↑.link:=p↑.link;p↑.link:=q
D. p↑.link:=q;q↑.link:=p↑.link