更多"对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为()。"的相关试题:
[单项选择]对于n个结点的单向链表(无表头结点)需要指针单元的个数至少为______。
A. n-1
B. n
C. n+1
D. 2n
[填空题]以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回。请填空。
#include <stdio.h>
struct list
{ char dara;
struct list *next;
};
struct list *creat( )
{ struct list *h,*p,*q;
char ch;
h= (struct list (*) malloc (sizeof (struct list));
______;
ch=getchar( );
while(ch!=’’)
{ p=(struct list*) malloc) sizeof (struct list));
p->data=ch;
______;
q=p;
ch=getchar( );
}
p->next=’/0’;
______:
}
[填空题]以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的
末尾。单向链表的头指针作为函数值返回。请填空。
# include<stdio.h>
struct list
char data;
struct list * next;
;
struct list * creat;
struct list * h,* p,* q;
char ch;
h=(______)malloc ( sizeof(struct list));
p=q=h;
ch=getchar( );
while(ch!=’’)
p=(______)mallco(sizeof(struct list));
p->data=ch;
q->next=p;
q=p;
ch=getchar( );
p->next=’/0’;
______;
[填空题]下面程序中函数creat用于建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。将程序补充完整。
#include<stdiao.h>
struct list
char data; struct list * next;;
struct list * creat( )
struct list *h,*p,*q; char ch;
h= 【18】 malloc(sizeof(struct list));
p=q=h;ch=getchar( );
while(ch!=’’)
p= 【19】 malloc(sizeof(struct list));
p->data=ch;q->next=p;q=p;ch=getchar( );
p->next=’/0’;
【20】 ;
[单项选择]与单向链表相比,双向链表()
A. 需要较少的存储空间
B. 遍历元素需要的时间较短
C. 较易于访问相邻结点
D. 较易于插入和删除元素
[填空题]已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在下划线内填入正确内容。
int data;struct link*next;
main( )
struct link*head;
┆
sum(head);
┆
sum( 【19】 );
struct link*p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[填空题]已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。
int data; struct link *next;
main( )
struct link *head;
sam(______);
stmct link *p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[简答题]分别写出删除单向和双向循环链表中指针P所指的结点的直接后继结点(非尾结点)对应的语句。
(1)单向循环链表。
(2)双向循环链表。
[填空题]对于n个结点的序列,利用shell排序的方法总的记录移动个数约为【 】:
[填空题]对于n个结点的序列,利用shell排序的方法总的记录移动个数约为 【3】 :
[填空题]对于n个结点的序列,利用直接插入排序的方法总的记录移动个数约为【 】。