对链表, 以下叙述中正确的是()。
A、插入删除元素的操作一定要要移动结点
B、不能随机访问任一结点
C、可以通过下标对链表进行直接访问
D、结点占用的存储空间是连续的
B
A、插入删除元素的操作一定要要移动结点
B、不能随机访问任一结点
C、可以通过下标对链表进行直接访问
D、结点占用的存储空间是连续的
B
A.稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高
B.在顺序表上实现的排序方法在链表上也同样适合
C.对同一个顺序表使用不同的排序方法进行排序,得到的排序结果可能不同
D.排序方法都是在顺序表上实现的,在链表上无法实现排序方法
A.顺序存储方式的优点是存储密度大,且插入、删除运算效率高
B.链表中的每一个结点都包含一个指针
C.包含n个结点的二叉排序树的最大检索长度为log/-2n
D.将一棵树转换为二叉树后,根结点没有右子树
设单链表中结点的结构为:
已知单链表中结点*q是结点*p的直接前驱,若在*q与*p之间插人结点*s,
则应执行以下()操作。
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;
# 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
设线性表为(1,13,16,18) ,以下程序用说明结构变量的方法建立头指针为head,尾结,点为18的单向循环链表,并输出链表中各结点中的数据。
#define NULL 0
Void main()
{
NODE a,b,c,d,*head,*p;
a.data=1;
b.data=13;
c.data=16;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
b.next=&c;
c.next=&d;
()=head; /*以上结束建立循环链表的过程*/
p=head; /* p为工作指针,准备输出链表*/
do
{
printf("%d/n",());
();
}while();
}