电子科技大学计算机软件基础,电子科技大学计算机软件技术基础试题答案.doc...

这篇博客主要探讨了线性表的链式存储结构与顺序存储结构的优缺点,强调了链式存储在插入和删除操作上的优势。此外,文章还涉及线性表的定义、操作复杂度分析以及平均情况下插入和删除元素所需移动的元素个数。同时,介绍了如何在链表中进行节点的插入操作,并给出了具体的代码实现。最后,文章讨论了有序链表的合并和判断一个链表是否包含在另一个链表中的算法,提供了递归解决方案。
摘要由CSDN通过智能技术生成

电子科技大学计算机软件技术基础试题答案.doc

《计算机软件技术基础》试题

1.线性表的链式存储结构与顺序存储结构相比优点是 CD 。

A. 所有的操作算法实现简单B. 便于随机存取

C. 便于插入和删除D. 便于利用零散的存储器空间

2.线性表是具有n个 C 的有限序列。

A. 表元素B. 字符C. 数据元素

D. 数据项E. 信息项

3.若长度为n的线性表采用顺序存储结构,在其第I个位置插入一个新元素的算法的时间复杂度为 C 。(1≤I≤n+1)

A. O(0)B. O(1)

C. O(n)D. O(n2)

4.设A是一个线性表(a1,a2,…,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为 A ;若元素插在ai与ai+1之间(0≤I≤n-1)的概率为,则平均每插入一个元素所要移动的元素个数为 C ;

A. B.

C. D.

5.下列函数中,按它们在时的无穷大阶数,最大的是 D 。

A. lognB. nlogn

C. 2n/2D. n!

6.将下图所示的s所指结点加到p所指的结点之后,其语句应为: D 。

A. s->next=p+1; p->next=s;

B. (*p).next=s; (*s).next=(*p).next;

C. s->next=p->next; p->next=s->next;

D. s->next=p->next; p->next=s;

7.将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是 A 。

A. nB. 2n-1

C. n-1D. 2n

8.下面的程序段是合并两个无头结点链表(ha和 hb)为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的。合并后新链表的结点仍按此方式链接。请填写下述空框,使程序能正确运行。

#define NULL 0

typedef struct node{

int data;

struct node *next;

}node, linklisttype;

void combine(linklisttype *ha, linklisttype *hb){

linklisttype *h, *p;

h = (linklisttype *)malloc(sizeof(linklisttype));

h->next = NULL;

p = h;

while(ha != NULL && hb != NULL)

if(ha->data>=hb->data){/*较大的元素先插入*/

p->next = (1) ;

p = (2) ;

(3) ;

}

else{

p->next = (4) ;

p = (5) ;

(6) ;

}

if(ha==NULL) (7) ;

if(hb==NULL) (8) ;

ha = h->next;

free(h);

}

参考答案:(1) ha(2) p->next(3) ha=ha->next

(4) hb(5) p->next(6) hb=hb->next

(7) p->next=hb(8) p->next=ha

9.如果表A中所有元素(a1,a2,…,an)与表B的一个顺序子表(bk,bk+1,…bk+n-1)完全相同(即a1=bk,a2=bk+1,…an=bk+n-1),则称表A包含在表B中。设ha,hb为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表A是否包含在表B中,若是,则返回true,否则返回false。(提示:用递归实现)

#define true 1

#define false 0

#define NULL 0

typedef struct node{

int data;

struct node *next;

}node, linklisttype;

int inclusion(linklisttype *ha, linklisttype *hb){

linklisttype *pa, *pb;

pa = ha->next;

pb = hb->next;

(1) ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值