数据结构习题集C语言版严蔚敏第一二三章Word格式.docx

上传人:b****2 文档编号:15247900 上传时间:2022-10-28 格式:DOCX 页数:19 大小:124.39KB
下载 相关 举报
数据结构习题集C语言版严蔚敏第一二三章Word格式.docx_第1页
第1页 / 共19页
数据结构习题集C语言版严蔚敏第一二三章Word格式.docx_第2页
第2页 / 共19页
数据结构习题集C语言版严蔚敏第一二三章Word格式.docx_第3页
第3页 / 共19页
数据结构习题集C语言版严蔚敏第一二三章Word格式.docx_第4页
第4页 / 共19页
数据结构习题集C语言版严蔚敏第一二三章Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构习题集C语言版严蔚敏第一二三章Word格式.docx

《数据结构习题集C语言版严蔚敏第一二三章Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构习题集C语言版严蔚敏第一二三章Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

数据结构习题集C语言版严蔚敏第一二三章Word格式.docx

z=y-x;

break;

casex=y:

z=abs(x*y);

default:

z=(x-y)/abs(x)*abs(y);

1.6在程序设计中,常用下列三种不同的出错处理方式:

(1)用exit语句终止执行并报告错误;

(2)以函数的返回值区别正确返回或错误返回;

(3)设置一个整型变量的函数参数以区别正确返回或某种错误返回。

试讨论这三种方法各自的优缺点。

1.7在程序设计中,可采用下列三种方法实现输出和输入:

(1)通过scanf和printf语句;

(2)通过函数的参数显式传递;

(3)通过全局变量隐式传递。

试讨论这三种方法的优缺点。

1.8设n为正整数。

试确定下列各程序段中前置以记号@的语句的频度:

(1)i=1;

k=0;

=n-1){

@k+=10*i;

(2)i=1;

}while(i<

=n-1);

(3)i=1;

while(i<

=n-1){

(4)k=0;

for(i=1;

i<

=n;

i++){

for(j=i;

j<

j++)

@k++;

(5)for(i=1;

for(j=1;

=i;

j++){

for(k=1;

k<

=j;

k++)

@x+=delta;

(6)i=1;

j=0;

while(i+j<

=n){

@if(i>

j)j++;

elsei++;

(7)x=n;

y=0;

//n是不小于1的常数

while(x>

=(y+1)*(y+1)){

@y++;

(8)x=91;

y=100;

while(y>

0){

@if(x>

100){x-=10;

y--;

elsex++;

1.9假设n为2的乘幂,并且n>

2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示)。

intTime(intn){

count=0;

x=2;

while(x<

n/2){

x*=2;

count++;

}

returncount;

1.11已知有实现同一功能的两个算法,其时间复杂度分别为和,假设现实计算机可连续运算的时间为秒(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)次。

试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?

哪个算法更适宜?

请说明理由。

1.12设有以下三个函数:

,,

请判断以下断言正确与否:

(1)f(n)是O(g(n))

(2)h(n)是O(f(n))

(3)g(n)是O(h(n))

(4)h(n)是O(n3.5)

(5)h(n)是O(nlogn)

1.13试设定若干n值,比较两函数和的增长趋势,并确定n在什么范围内,函数的值大于的值。

1.14判断下列各对函数和,当时,哪个函数增长更快?

(1),

(2),

(3),

(4),

1.15试用数学归纳法证明:

(1)

(2)

(3)

(4)

1.16试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值

1.17已知k阶斐波那契序列的定义为

,,…,,;

试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。

1.18假设有A,B,C,D,E五个高等院校进行田径对抗赛,各院校的单项成绩均已存入计算机,并构成一张表,表中每一行的形式为

项目名称

性别

校名

成绩

得分

编写算法,处理上述表格,以统计各院校的男、女总分和团体总分,并输出。

1.19试编写算法,计算的值并存入数组a[0..arrsize-1]的第i-1个分量中(i=1,2,…,n)。

假设计算机中允许的整数最大值为maxint,则当n>

arrsize或对某个,使时,应按出错处理。

注意选择你认为较好的出错处理方法。

1.20试编写算法求一元多项式的值的值,并确定算法中每一语句的执行次数和整个算法的时间复杂度。

注意选择你认为较好的输入和输出方法。

本题的输入为,和,输出为。

第2章线性表

2.1描述以下三个概念的区别:

头指针,头结点,首元结点(第一个元素结点)。

2.2填空题。

(1)在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。

(2)顺序表中逻辑上相邻的元素的物理位置紧邻。

单链表中逻辑上相邻的元素的物理位置紧邻。

(3)在单链表中,除了首元结点外,任一结点的存储位置由指示。

(4)在单链表中设置头结点的作用是。

2.3在什么情况下用顺序表比链表好?

2.4对以下单链表分别执行下列各程序段,并画出结果示意图。

2.5画出执行下列各行语句后各指针及链表的示意图。

L=(LinkList)malloc(sizeof(LNode));

P=L;

i<

=4;

i++){

P->

next=(LinkList)malloc(sizeof(LNode));

P=P->

next;

P->

data=i*2-1;

next=NULL;

for(i=4;

i>

=1;

i--)Ins_LinkList(L,i+1,i*2);

=3;

i++)Del_LinkList(L,i);

2.6已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

a.在P结点后插入S结点的语句序列是__________________。

b.在P结点前插入S结点的语句序列是__________________。

c.在表首插入S结点的语句序列是__________________。

d.在表尾插入S结点的语句序列是__________________。

(1)P->

next=S;

(2)P->

next=P->

next->

(3)P->

next=S->

(4)S->

(5)S->

next=L;

(6)S->

(7)Q=P;

(8)while(P->

next!

=Q)P=P->

(9)while(P->

=NULL)P=P->

(10)P=Q;

(11)P=L;

(12)L=S;

(13)L=P;

2.7已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

a.删除P结点的直接后继结点的语句序列是____________________。

b.删除P结点的直接前驱结点的语句序列是____________________。

c.删除P结点的语句序列是____________________。

d.删除首元结点的语句序列是____________________。

e.删除尾元结点的语句序列是____________________。

(1)P=P->

next=P;

(4)P=P->

(5)while(P!

(6)while(Q->

=NULL){P=Q;

Q=Q->

(7)while(P->

(10)Q=P;

(11)Q=P->

(12)P=L;

(13)L=L->

(14)free(Q);

2.8已知P结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。

a.在P结点后插入S结点的语句序列是_______________________。

b.在P结点前插入S结点的语句序列是_______________________。

c.删除P结点的直接后继结点的语句序列是_______________________。

d.删除P结点的直接前驱结点的语句序列是_______________________。

e.删除P结点的语句序列是_______________________。

priou=P->

priou->

priou;

(4)P->

priou=S;

priou=P;

(7)S->

(8)S->

(9)P->

(10)P->

(11)P->

(12)P->

(13)P->

(14)P->

(15)Q=P->

(16)Q=P->

(17)free(P);

(18)free(Q);

2.9简述以下算法的功能。

(1)StatusA(LinkedListL){//L是无表头结点的单链表

if(L&

L->

next){

Q=L;

L=L->

while(P->

next)P=P->

P->

next=Q;

Q->

}

returnOK;

(2)voidBB(LNode*s,LNode*q){

p=s;

while(p->

=q)p=p->

p->

next=s;

voidAA(LNode*pa,LNode*pb){

//pa和pb分别指向单循环链表中的两个结点

BB(pa,pb);

BB(pb,pa);

2.10指

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1