二、分析下列用二元组形式表示的数据结构,指出他们分别属于何种类型的数据结构。
1.线性结构
2.树型结构
3.图型结构
4.图型结构
分析:
数据结构D中的关系集合R有两个关系r1和r2。
如果只考虑关系r1,则为线性结构;如果只考虑关系r2,则为树型结构;如果把关系r1和r2联合起来考虑,则为图型结构。
5.图型结构
分析:
若用图形来表示则可以看出r是E上的对称关系,为了简化起见,我们通常把和这两个有序偶对用一个无序偶对(x,y)或(y,x)来代替。
在用图形表示时,我们把x结点和y结点之间两条相反的弧用一条无向边来代替。
三、指出下列各函数的功能并求出其时间复杂度。
1.函数的功能是判断n是否是一个素数,其时间复杂度为O(n1/2)。
分析:
函数prime中出现的库函数sqrt为平方根函数,因此。
2.函数的计算的值,其时间复杂度为O(n2)。
3.函数的计算的值,其时间复杂度为O(n)。
4.函数的功能是对数组r中的n个元素进行冒泡排序,其时间复杂度为O(n2)。
分析:
。
第二章线性表
一、填空题
1.设长度为n的顺序线性表在任何位置上插入或删除操作都是等概率的,则插入一个元素时平均需要移动_______个元素,删除一个元素时平均需要移动______个元素。
2.在顺序线性表中插入一个元素时,插入位置开始后的所有元素均需要________移动一个位置。
3.在顺序线性表中删除一个元素时,被删除元素后的所有元素均需要__________移动一个位置。
4.线性表的链式存储结构中,元素之间的线性关系是通过结点中的________来实现的。
5.线性表的顺序存储结构中逻辑上相邻的元素,物理位置__________相邻;线性表的链式存储结构中逻辑上相邻的元素,物理位置____________相邻。
6.已知单链表的长度为n,则在给定值为x的结点后插入一个新结点的时间复杂度为__________。
7.已知单链表的长度为n,则删除给定值为x的结点的时间复杂度为__________。
8.在单链表中设置头结点的作用是________________________________。
9.双向链表中每个结点含有两个指针域,其中一个指针域指向_______结点,另一个指针域指向______结点。
10.在长度为n的线性表中顺序查找某个结点值为X的时间复杂度为______________。
二、选择题
1.在长度为n的顺序线性表中删除第i个元素(1<=i<=n),则需要向前移动的元素个数为()。
⑴n-i⑵n+1-i⑶n-1-i⑷i
2.建立一个长度为n的单链表的时间复杂度为()。
⑴O(n)⑵O
(1)⑶O(n2)⑷((log2n)
3.设指针p指向单链表中的结点A,结点A的后继结点是结点B,则删除结点B的操作为()。
⑴p->next=p⑵p=p->next
⑶p=p->next->next⑷p->next=p->next->next
4.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B之间插入结点X的操作为()。
⑴s->next=p->next;p->next=s;⑵q->next=s;s->next=p;
⑶p->next=s->next;s->next=p;⑷p->next=s;s->next=q;
5.在长度为n的顺序线性表中的第i个元素(1<=i<=n+1)之前插入一个新元素时,则需要向后移动的元素个数为()。
⑴n-i⑵n+1-i⑶n-1-i⑷i
6.在长度为n的有序线性表中插入一个元素后仍然保持有序的平均时间复杂度为()。
⑴O(log2n)⑵O
(1)⑶O(n2)⑷O(n)
7.设指针p指向双向链表中的结点A,指针s指向被插入的结点X,则在结点A之后插入结点X的操作为()。
⑴p->rlink=s;s->llink=p;p->rlink->llink=s;s->rlink=p->rlink;
⑵s->llink=p;s->rlink=p->rlink;p->rlink=s;p->rlink->llink=s;
⑶p->rlink=s;p->rlink->llink=s;s->llink=p;s->rlink->p->rlink;
⑷s->llink=p;s->rlink=p->rlink;p->rlink->llink=s;p->rlink=s;
8.指针p指向双向链表中的结点A,则删除结点A的操作是()。
⑴p->llink->rlink=p->rlink;p->rlink->llink=p->llink;
⑵p->rlink->llink=p->rlink;p->llink->llink=p->llink;
⑶p->llink->rlink=p->llink;p->rlink->llink=p->rlink;
⑷p->rlink->rlink=p->rlink;p->rlink->rli