ECNU839数据结构2005答案

合集下载

数据结构习题集答案(C语言版严蔚敏) (1)

数据结构习题集答案(C语言版严蔚敏) (1)

#include<iostream.h> #include<stdlib.h> #define MAXINT 65535 #define ArrSize 100 int fun(int i); int main() { int i,k; int a[ArrSize]; cout<<"Enter k:"; cin>>k; if(k>ArrSize-1) exit(0); for(i=0;i<=k;i++){ if(i==0) a[i]=1; else{ if(2*i*a[i-1]>MAXINT) exit(0); else a[i]=2*i*a[i-1]; } } for(i=0;i<=k;i++){ if(a[i]>MAXINT) exit(0); else cout<<a[i]<<" "; } return 0; } 1.20 试编写算法求ห้องสมุดไป่ตู้元多项式的值的值,并确定算法中每一语句的执 行次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出 方法。本题的输入为,和,输出为。 解: #include<iostream.h> #include<stdlib.h> #define N 10 double polynomail(int a[],int i,double x,int n); int main() { double x;
ADT Complex{ 数据对象:D={r,i|r,i为实数} 数据关系:R={<r,i>} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C,其实部和虚部分别为re和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C,k,&e) 操作结果:用e返回复数C的第k元的值 Put(&C,k,e) 操作结果:改变复数C的第k元的值为e IsAscending(C) 操作结果:如果复数C的两个元素按升序排列,则返回 1,否则返回0 IsDescending(C) 操作结果:如果复数C的两个元素按降序排列,则返回 1,否则返回0 Max(C,&e) 操作结果:用e返回复数C的两个元素中值较大的一个 Min(C,&e) 操作结果:用e返回复数C的两个元素中值较小的一个 }ADT Complex ADT RationalNumber{ 数据对象:D={s,m|s,m为自然数,且m不为0} 数据关系:R={<s,m>} 基本操作: InitRationalNumber(&R,s,m) 操作结果:构造一个有理数R,其分子和分母分别为s和m DestroyRationalNumber(&R) 操作结果:销毁有理数R Get(R,k,&e) 操作结果:用e返回有理数R的第k元的值 Put(&R,k,e) 操作结果:改变有理数R的第k元的值为e IsAscending(R)

数据结构课后习题答案详解C语言版严蔚敏

数据结构课后习题答案详解C语言版严蔚敏

数据结构习题集答案(C语言版严蔚敏)第2章线性表2.1描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

解:头指针是指向链表中第一个结点的指针。

首元结点是指链表中存储第一个数据元素的结点。

头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。

它可以对空表、非空表以及首元结点的操作进行统一处理。

2.2填空题。

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

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

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

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

(4)在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理。

2.3在什么情况下用顺序表比链表好?解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。

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

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

L=(LinkList)malloc(sizeof(LNode)); P=L;for(i=1;i<=4;i++){P->next=(LinkList)malloc(sizeof(LNode));P=P->next; P->data=i*2-1;}P->next=NULL;for(i=4;i>=1;i--)Ins_LinkList(L,i+1,i*2);for(i=1;i<=3;i++)Del_LinkList(L,i);解:2.6已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

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

(完整版)数据结构课后习题答案

(完整版)数据结构课后习题答案

第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。

如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。

在有些情况下,数据元素也称为元素、结点、记录等。

数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。

数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。

例如,学生基本信息表中的学号、姓名、性别等都是数据项。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

存储结构:数据对象在计算机中的存储表示,也称为物理结构。

抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。

每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。

(NEW)华东师范大学《839数据结构(含C语言程序设计)》[专业硕士]历年考研真题汇编

(NEW)华东师范大学《839数据结构(含C语言程序设计)》[专业硕士]历年考研真题汇编
目 录
2007年华东师范大学439数据结构(含C语言程序设计)[专业硕士]历年 考研真题
2006年华东师范大学439数据结构(含C语言程序设计)[专业硕士]历年 考研真题
2005年华东师范大学数据结构(含C语言程序设计)[专业硕士]历年考 研真题
2004年华东师范大学数据结构(含C语言程序设计)[专业硕士]历年考 研真题
2003年华东师范大学数据结构(含C语言程序设计)[专业硕士]历年结构(含C语 言程序设计)[专业硕士]历年考研真题
2006年华东师范大学439数据结构(含C语 言程序设计)[专业硕士]历年考研真题
2005年华东师范大学数据结构(含C语言 程序设计)[专业硕士]历年考研真题
2004年华东师范大学数据结构(含C语言 程序设计)[专业硕士]历年考研真题
2003年华东师范大学数据结构(含C语言 程序设计)[专业硕士]历年考研真题

数据结构各章习题及答案.

数据结构各章习题及答案.

数据结构习题及解答第1章 概述【例1-1】分析以下程序段的时间复杂度。

for(i=0;i<n;i++) for(j=0;j<m;j++) A[i][j]=0;解:该程序段的时间复杂度为O (m*n )。

【例1-2】分析以下程序段的时间复杂度。

i=s=0; ① while(s<n) { i++; ② s+=i; ③ }解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O (1)。

语句②和语句③构成while 循环语句的循环体,它们的执行次数由循环控制条件中s 与n 的值确定。

假定循环重复执行x 次后结束, 则语句②和语句③各重复执行了x 次。

其时间复杂度按线性累加规则为O (x )。

此时s 与n 满足关系式:s ≥n ,而s=1+2+3+…+x 。

所以有:1+2+3+…+x ≥n ,可以推出:x=nn 241212811+±-=+±-x 与n 之间满足x=f(n ),所以循环体的时间复杂度为O (n ),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O (n )。

【例1-3】分析以下程序段的时间复杂度。

i=1; ① while(i<=n) i=2*i; ②解:其中语句①的执行次数是1,设语句②的执行次数为f (n ),则有:n n f ≤)(2。

log)得:T(n)=O(n2【例1-4】有如下递归函数fact(n),分析其时间复杂度。

fact(int n){ if(n<=1)return(1);①elsereturn(n*fact(n-1));②}解:设fact(n)的运行时间函数是T(n)。

该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。

由此可得fact(n)的时间复杂度为O(n)。

习题1一、单项选择题1.数据结构是指(1. A )。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。

《暨南大学830数据结构2011-2019年考研真题及答案解析》

《暨南大学830数据结构2011-2019年考研真题及答案解析》
Ⅱ 历年考研真题试卷答案解析.............................................................................................49
暨南大学 2011 年招收攻读硕士学位研究生入学考试试题答案解析................................ 49 暨南大学 2012 年招收攻读硕士学位研究生入学考试试题答案解析................................ 64 暨南大学 2013 年招收攻读硕士学位研究生入学考试试题答案解析................................ 79 暨南大学 2014 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)..................... 96 暨南大学 2015 年招收攻读硕士学位研究生入学考试试题答案解析(B 卷)................... 113 暨南大学 2016 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 130 暨南大学 2017 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 144
3. 线性表的动态链表存储结构与顺序存储结构相比,优点是( )。
A. 所有的操作算法实现简单
B. 便于随机存取
C. 便于插入与删除
D. 便于节省存储器空间
4.若进栈序列为 1,2,3,4,5,6, 且进栈和出栈可以穿插进行,则可能出现的出
栈序列为( )。
A. 3,2,6,1,4,5
B.5,6,4,2,3,1
五、算法填空, (每空 2 分,共 16 分)
1.下面的算法是一个在元素按值递增排列,并以带头结点的单链表作存储结构的线性表

中国石油大学(北京)《858数据结构》历年考研真题汇编

中国石油大学(北京)《858数据结构》历年考研真题汇编

目 录2000年中国石油大学(北京)数据结构考研真题2001年中国石油大学(北京)数据结构考研真题2002年中国石油大学(北京)数据结构考研真题2003年中国石油大学(北京)数据结构考研真题2004年中国石油大学(北京)数据结构考研真题2000年中国石油大学(北京)数据结构考研真题石油大学(北京)二000年研究生入学试题糙明数据结构共2页适用专业:计算机应用-、求解下^问题(7X6分〉1、判别以下序列是否为堆(小顶堆或大顶堆).如果不是,则把它调整为堆(要求记录交换次数最少).⑴<100,86,48,73,35,39,42,57,/66,21)<2)《05,56.20,23.40.38,29,61,35,76.28,100)(3)(103,97,56,38,66,23,42,12,30,52,06,的)2、宿线性浪进行二分法粉索的先决编中是什么?简述二分法检索的基本汶程及草平均检索长度,3、按照四则运算加、减、m,除和慕运算(t)优先关系的惯例,即出对下列算术衰达式求值时操作数栈和运算待栈的变化过程:A-BXC/D+E tF4、己知下列各始为广义表的存赭结构图,其结点的结构为,Uj数据结构的主要区别是什么,(2)分配算法的主要区别是什么?⑶回收算法的主要区别是什么?6、画出与下列己知序列时应的森林F:森林的先序次序访问序列为:ABCDEFGHIJKL森林的中序次序访问序列为:CBEFDGAJIKLH7、画出上面有向图的十字链袤.I''>■**,-*二、写算法(2X12分)1、从循环双向链表中新除第i<i^l)个结点,试写出其算法.2、已知一棵以链表存储的二叉材,如欲姚结点起,由上而下,逐孱打印各结瘁的数据,同一是结点宜左而右打印,试写出其算法.(要求所用变量必须注解)】*l,t土|>”.1三,分析与推导L一棵深度为H的满k义村有如下性质:第H层上•钓结点都是叶于结点,其余各层上每个嬉点都有! k棵非空亍树.如果按层次倾序从1开殖对全部结点编号,网(12分)(D各层的结点数目是多少?•⑵编号为p的结点的父结点(若存在〉的编号是多少?⑶编号为P的绪点的第i个儿子结点(若存在)的编号是多少?⑴漏号为p的结点宥兄弟的条件是什么?其兄弟的编号是什么?2、.画出下图所示的无向图的邻接多重表,使得其中母个无向边绡点宇曾一个顶点号小于第二个顶点号,旦每个顶点的各邻接边的链接顾序为它所邻接的顶点序号或'到大莉前序.列出深度优先和广度优先搜索遍历该图所得顶*律列和边序列.(12分)3、什么姑平衡二又树|?平衡二叉树有什么优点,用在什么堕方?试推导含12个结点的平衡二叉树%"的最大深陌,芥皿出一棵这样的平衡二又树.no分}2001年中国石油大学(北京)数据结构考研真题石油大学(北京)2001年研究生入学试题考试科目:数据结构共2页适用专业:计算机应用求解下列间题'(8X6分)1.画出广义表(a.((),b),(((e))))的存储结构图.2.若二棵树中有度为1至m的结点数分别为m,任,…,n.(&衷示及数为m的结点个数)*谄推导也该树中有多少个叶结点n“的公式.3.请给出下而稀疏炬阵的漆——列表示法(即十字镂表法)存储结构.勺200。

《数据结构》课后参考答案

《数据结构》课后参考答案

单元练习1一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。

(√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。

(ㄨ)(3)数据元素是数据的最小单位。

(ㄨ)(4)数据的逻辑结构和数据的存储结构是相同的。

(ㄨ)(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。

(√)(6)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

(√)(7)数据的存储结构是数据的逻辑结构的存储映像。

(√)(8)数据的物理结构是指数据在计算机内实际的存储形式。

(ㄨ)(9)数据的逻辑结构是依赖于计算机的。

(√)(10)算法是对解题方法和步骤的描述。

二.填空题(1)数据有逻辑结构和存储结构两种结构。

(2)数据逻辑结构除了集合以外,还包括:线性结构、树形结构和图形结构。

(3)数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

(4)树形结构和图形结构合称为非线性结构。

(5)在树形结构中,除了树根结点以外,其余每个结点只有 1 个前趋结点。

(6)在图形结构中,每个结点的前趋结点数和后续结点数可以任意多个。

(7)数据的存储结构又叫物理结构。

(8)数据的存储结构形式包括:顺序存储、链式存储、索引存储和散列存储。

(9)线性结构中的元素之间存在一对一的关系。

(10)树形结构结构中的元素之间存在一对多的关系,(11)图形结构的元素之间存在多对多的关系。

(12)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个方面的内容。

(13)数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。

(14)算法是一个有穷指令的集合。

(15)算法效率的度量可以分为事先估算法和事后统计法。

(16)一个算法的时间复杂性是算法输入规模的函数。

(17)算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n 的函数。

数据结构课程课后习题答案

数据结构课程课后习题答案

数据结构课程课后习题答案(总40页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《数据结构简明教程》练习题及参考答案练习题11. 单项选择题(1)线性结构中数据元素之间是()关系。

A.一对多B.多对多C.多对一D.一对一答:D(2)数据结构中与所使用的计算机无关的是数据的()结构。

A.存储B.物理C.逻辑D.物理和存储答:C(3)算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性答:C(4)算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性答:A(5)计算机算法指的是()。

A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法答:C(6)计算机算法必须具备输入、输出和()等5个特性。

A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性答:B2. 填空题(1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。

答:①逻辑结构②存储结构③运算(2)数据结构按逻辑结构可分为两大类,它们分别是①和②。

答:①线性结构②非线性结构3(3)数据结构被形式地定义为(D,R ),其中D 是 ① 的有限集合,R 是D 上的 ② 有限集合。

答:①数据元素 ②关系(4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。

答:①没有 ②没有(5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。

答:①前驱 ②1 ③后继 ④任意多个(6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。

2005年底数据结构试卷B参考答案

2005年底数据结构试卷B参考答案

一、选择题1.C 2.B 3.A 4.B 5.A6.B 7.D 8.B 9.C 10.C二、填空题1.(49,13,27,50,76,38,65,97)2.t=(bitree *)malloc(sizeof(bitree)),bstinsert(t->rchild,k)3.p->next=s4.head->rlink,p->llink5.CABD6.1,167.08.(13,27,38,50,76,49,65,97)9.n-110.50三、判断题1.错2.错3.对4.对5.错6.错7.对8.对9.错10.错四、算法设计题1.设计在链式结构上实现简单选择排序算法。

void simpleselectsorlklist(lklist *&head){lklist *p,*q,*s; int min,t;if(head==0 ||head->next==0) return;for(q=head; q!=0;q=q->next){min=q->data; s=q;for(p=q->next; p!=0;p=p->next) if(min>p->data){min=p->data; s=p;}if(s!=q){t=s->data; s->data=q->data; q->data=t;}}}2.设计在顺序存储结构上实现求子串算法。

void substring(char s[ ], long start, long count, char t[ ]){long i,j,length=strlen(s);if (start<1 || start>length) printf("The copy position is wrong");else if (start+count-1>length) printf("Too characters to be copied");else { for(i=start-1,j=0; i<start+count-1;i++,j++) t[j]=s[i]; t[j]= '\0';}}3.设计求结点在二叉排序树中层次的算法。

05年数据结构试题含部分答案

05年数据结构试题含部分答案
for(p=T->firstchild; p; p=p->nextsibling)
c += f24(p);
returnc;
}
}
25.(6分)二叉树的存储结构的类型定义如下:
typedefstructBiTNode{
chardata;
BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
【c】4.在一棵二叉树中,度为2的结点有15个,度为1的结点有2个,则度为0的结点数为
[A] 13[B] 15[C] 16[D] 17
【c】5.有向图的一个顶点的度是该顶点的
[A]入度[B]出度
[C]入度与出度之和[D]入度与出度的均值
【b】6.下面关于B树和B+树的叙述中,不正确的是
[A] B树和B+树都是平衡多叉树
<c,e>,<d,e>,<f,d>,<f,e>}
(1)画出G的逆邻接表;
(2)写出G的全部拓扑有序序列。
Acbfde
Acfbde
Acfdbe
Acfdeb
Afcbde
Afcdbe
Afcdeb
Afdcbe
Afdceb
facbde
facdbe
facdeb
fadcbe
fadceb
20.(6分)从空树开始构造一棵平衡二叉排序树,依次插入的关键字为
s->code=p->next->code;s->price=p->next->price;s->total=p->next->total;
s->next=Lc;

(完整版)青岛大学05数据结构

(完整版)青岛大学05数据结构

青岛大学 2005 年硕士研究生入学考试一试题学科代码:407科目名称:数据结构(共4页)请考生写明题号,将答案所有答在答题纸上,答在试卷上无效一.单项选择题(本大题共10 道小路小题,每题 3 分,共 30 分)1. 算法的时间复杂度取决于【】A. 问题的规模B. 待办理数据的初始状态C. 软件和硬件的组合D. 操作系统2. 向一个栈顶指针为top 的链栈中插入一个s 结点,则履行【】A. top->next=s;B. s->next=top->next; top->next=s;C. s->next=top; top=s;D. s->next=top; top=top->next;3. 广义表(( a))的表头是【】A. aB. (a)C. ()D. ((a))4. 由带权为8、 2、 5、 7 的叶子结点结构一棵哈夫曼树,该树的带权路径长度为【】A. 37B. 32C. 46D. 435. 采纳毗邻表储存的图,其BFS 算法近似于二叉树的【】A. 中序遍历B. 先序遍历C. 后序遍历D. 按层遍历6. 在非空 m 阶 B_ 树上,除根结点以外的所有其余非终端结点【】A. 起码有m / 2 棵子树B. 至多有m / 2 棵子树C. 起码有m / 2 棵子树D. 至多有 m / 2 棵子树7. 对线性表进行次序查找时,要求线性表的储存结构为【】A. 散列储存B. 次序储存或许链式储存C. 压缩储存D. 索引储存8. 在重点字“基本有序”的状况下,最正确排序算法为【】A. 迅速排序B. 冒泡排序C. 直接插入排序D. 基数排序9. 折半查找法和二叉排序树的时间性能【】A. 与办理数据量相关B. 同样C. 不同样D. 不确立10. 串是一种特别的线性表,其特别性表此刻【】A. 能够次序储存B. 数据元素是一个字符C. 能够链接储存D. 数据元素能够是多个字符二、填空题(本大题共10 小题,每题 2 分,共 20 分)1. 在拥有 n 个单元的循环行列中,队满时共有____________个元素。

(完整版)青岛大学05数据结构

(完整版)青岛大学05数据结构
(1)按表中元素的顺序,构造一棵平衡二叉排序树。
(2)在等概率的情况下,求查找成功的ASL值。(10分)
4.在采用线性探测再散列法解决冲突的散列表中,所有同义词在表中是否一定相邻?试说明理由。(9分)
5.有关键字{25, 50, 55, 20, 30, 45, 40, 15, 10, 35},判断其是否为堆,若不是堆,请调整为一个小根堆。要求写出调整过程。(9分)
4.由带权为8、2、5、7的叶子结点构造一棵哈夫曼树,该树的带权路径长度为【】
A. 37 B. 32 C. 46 D. 43
5.采用邻接表存储的图,其BFS算法类似于二叉树的【】
A.中序遍历B.先序遍历C.后序遍历D.按层遍历
6.在非空m阶B_树上,除根结点之外的所有其他非终端结点【】
A.至少有 棵子树B.至多有 棵子树
3.消除递归_____________需要使用栈。
4.在具有n(n≥1)个结点的k叉树中,有_____________个空指针。
5.深度为5的二叉树至多有_________个结点。
6.一个连通图的__________是一个极小连通子图。
7.对稀疏图进行DFS遍历时,应该采用___________作为其存储结构。
Push(s, d);
}
while(!StackEmpty(s)){
_______③______;
Enqueue(q, d);
}
}
2.下面的算法是统计单链表中数据域的值为X的结点个数。请在空白处填入正确的语句。
int CountNodeX(struct ListNode *head, Elemtype x)
};
1.下面算法的功能是将队列中的数据元素进行逆置。设栈和队列的元素类型均为int。请在空白处填入正确的语句。

2005年下半年全国自考(数据结构)真题试卷(题后含答案及解析)

2005年下半年全国自考(数据结构)真题试卷(题后含答案及解析)

2005年下半年全国自考(数据结构)真题试卷(题后含答案及解析)题型有:1. 单项选择题 2. 填空题 3. 解答题 4. 算法阅读题 5. 算法设计题单项选择题1.若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( )A.操作的有限集合B.映象的有限集合C.类型的有限集合D.关系的有限集合正确答案:D2.在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A.n-i+1B.iC.i+1D.n-i正确答案:D3.若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A.head==NULLB.head—>next==NULLC.head!=NULLD.head—>next==head正确答案:A4.引起循环队列队头位置发生变化的操作是( )A.出队B.入队C.取队头元素D.取队尾元素正确答案:A5.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( )A.2,4,3,1,5,6B.3,2,4,1,6,5C.4,3,2,1,5,6D.2,3,5,1,6,4正确答案:D6.字符串通常采用的两种存储方式是( )A.散列存储和索引存储B.索引存储和链式存储C.顺序存储和链式存储D.散列存储和顺序存储正确答案:C7.设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( )A.mB.n-mC.n-m+1D.n正确答案:C8.二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( ) A.429B.432C.435D.438正确答案:A9.对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是( ) A.(e,f)B.((e,f))C.(f)D.( )正确答案:B10.下列图示的顺序存储结构表示的二叉树是( )A.&nbspB.&nbspC.&nbspD.&nbsp正确答案:A11.n个顶点的强连通图中至少含有( )A.n-1条有向边B.n条有向边C.n(n-1)/2条有向边D.n(n-1)条有向边正确答案:B12.对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )A.(19,23,56,34,78,67,88,92)B.(23,56,78,66,88,92,19,34)C.(19,23,34,56,67,78,88,92)D.(19,23,67,56,34,78,92,88)正确答案:D13.若在9阶B-树中插入关键字引起结点分裂,则该结点在插入前含有的关键字个数为( )A.4B.5C.8D.9正确答案:C14.由同一关键字集合构造的各棵二叉排序树( )A.其形态不一定相同,但平均查找长度相同B.其形态不一定相同,平均查找长度也不一定相同C.其形态均相同,但平均查找长度不一定相同D.其形态均相同,平均查找长度也都相同正确答案:B15.ISAM文件和VSAM文件的区别之一是( )A.前者是索引顺序文件,后者是索引非顺序文件B.前者只能进行顺序存取,后者只能进行随机存取C.前者建立静态索引结构,后者建立动态索引结构D.前者的存储介质是磁盘,后者的存储介质不是磁盘正确答案:C填空题16.数据的逻辑结构在计算机存储器内的表示,称为数据的______。

数据结构课程课后习题答案及解析

数据结构课程课后习题答案及解析

《数据结构简明教程》练习题及参考答案练习题11. 单项选择题(1)线性结构中数据元素之间是()关系。

A.一对多B.多对多C.多对一D.一对一答:D(2)数据结构中与所使用的计算机无关的是数据的()结构。

A.存储B.物理C.逻辑D.物理和存储答:C(3)算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性答:C(4)算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性答:A(5)计算机算法指的是()。

A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法答:C(6)计算机算法必须具备输入、输出和()等5个特性。

A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性答:B2. 填空题(1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。

答:①逻辑结构②存储结构③运算(2)数据结构按逻辑结构可分为两大类,它们分别是①和②。

答:①线性结构②非线性结构(3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

答:①数据元素②关系专业资料整理分享数据结构简明教程(4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。

答:①没有 ②没有(5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。

答:①前驱 ②1 ③后继 ④任意多个(6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。

答:任意多个(7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。

答:①顺序 ②链式 ③索引 ④哈希(8)一个算法的效率可分为 ① 效率和 ② 效率。

数据结构课程课后习题答案及解析

数据结构课程课后习题答案及解析

《数据结构简明教程》练习题及参考答案练习题11. 单项选择题(1)线性结构中数据元素之间是()关系。

A.一对多B.多对多C.多对一D.一对一答:D(2)数据结构中与所使用的计算机无关的是数据的()结构。

A.存储B.物理C.逻辑D.物理和存储答:C(3)算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性答:C(4)算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性答:A(5)计算机算法指的是()。

A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法答:C(6)计算机算法必须具备输入、输出和()等5个特性。

A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性答:B2. 填空题(1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。

答:①逻辑结构②存储结构③运算(2)数据结构按逻辑结构可分为两大类,它们分别是①和②。

答:①线性结构②非线性结构(3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

专业资料整理分享数据结构简明教程答:①数据元素 ②关系 (4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。

答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。

答:①前驱 ②1 ③后继 ④任意多个(6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。

答:任意多个(7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。

答:①顺序 ②链式 ③索引 ④哈希(8)一个算法的效率可分为 ① 效率和 ② 效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ecnu-05-1-1-1#define N 1000struct DataType{int acctNum;char name[10];float balance;};int main(){int i;struct DataType record = { 0, "", 0.0 };FILE *cfp;if ((cfp = fopen("file.dat", "w")) == NULL)printf("File could not be opened.\n");else{for (i = 0; i < N; i++)fwrite(&record, 1, sizeof(DataType), cfp);fclose(cfp);}}ecnu-05-1-1-2void sign_on(char str[], char *password){int a = 0;while ((strcmp(str, password) != 0) && ++a < 10){printf("Enter password please:");gets(str);}}int main(){char pwd[] = { "7788" };char str[] = { "5566" };sign_on(str, pwd);}ecnu-05-1-2-1int f(int a){static int x = 1;return (x*=a);}int main(){int i;for (i = 1; i < 5; i ++)printf("%d %d\n", i, f(i));return 1;}// output:// 1 1// 2 2// 3 6// 4 24// 没有5 120 !!!ecnu-05-1-2-2int main(){int c;if ((c = getchar()) != '0'){main();printf("%c", c);}return 1;}// input: This is 4096<CR>// output: 4 si sihTecnu-05-1-2-3int main()int i, j;for (i = 0; i < 3; i ++){j = 3;switch(i){case 0:while(j){case 1:printf("i=%d, ", i);case 2:printf("j=%d, ", j); j--;default:;}}printf("---\n");}return 1;}// output:// i=0, j=3, i=0, j=2, i=0, j=1, ---// i=1, j=3, i=1, j=2, i=1, j=1, ---// j=3, i=2, j=2, i=2, j=1, ---//ecnu-05-1-3-1int test (unsigned bits){unsigned i, mask = 1 << 15, count = 0;for (i = 0; i < 16; i++, bits <<=1){if ((bits & mask) == mask){count ++;}}return (count % 2 ? 0:1);}int main(){int result = test(123);// 检测bits 中含1的个数为奇数个返回1,否则返回0}ecnu-05-1-4-1void sort(int *p, int n) // 递归!!! 选一个最小值,和第一个首元素交换{int myMin = 0xFFFF, myMinIndex = 0;for (int i = 0; i < n; i ++){if (p[i] < myMin){myMin = p[i];myMinIndex = i;}}// swapp[myMinIndex] = p[0];p[0] = myMin;if (n > 1){sort(&p[1], n - 1);}}int main(){int a[] = { 1, 9, 7, 5, 3 };sort(a, sizeof(a)/sizeof(int));return 1;}ecnu-05-1-4-2long total(int n, int a) // days, things{int sum;if (n > 1){sum = total(n - 1, (a + 1)*2);}else{sum = a;}return sum;}int _tmain(int argc, _TCHAR* argv[]){/*x0 = nday1: x1 = x0/2-1day2: x2 = x1/2-1dayn: xn = a*/int days = 3, things = 1;printf("total = %d", total(days, things)); return 0;}ecnu-05-1-4-3enum colour{red,yellow,blue,};colour c[3] = { red, yellow, blue };void swap(colour **pc, int index1, int index2) {colour *tmp = (colour *)pc[index1];pc[index1] = pc[index2];pc[index2] = tmp;}colour inspect(colour **pc, int index)return *pc[index];}void holland(colour **pc, int count){int swapped = 0;for (int i = 0; i < count; i ++){swapped = 0;for (int j = count - 1; j > i; j --){if (inspect(pc, j - 1) > inspect(pc, j)){swap(pc, j - 1, j);swapped = 1;}}if (swapped == 0){ // 没有乱序break;}}return ;}int main(){colour *pc[8] = { &c[1], &c[0], &c[0], &c[2], &c[1], &c[2], &c[0], &c[2] };printf("Original: ");for (int i = 0; i < 8; i ++){printf("%d ", *pc[i]);}holland(pc, 8);printf("\r\n");printf("Result : ");for (int i = 0; i < 8; i ++){printf("%d ", *pc[i]);}return 0;}数据结构ecnu-05-填1.(n+1)/2n^2/2(1-成功的概率)不成功: n+(n-1)+(n-2)+...+1/n=(n+1)*n/2=(n+1)/2成功:(n+1)/2注:求查找不成功时的平均查找长度,分母为表长2.(r-f+n)%n(Length=(rear-front+Maxsize)%Maxsize)3.d3.e广义表:head取a1->表头,tail取a2...an->表尾A=((a,b,c),(d,e,f))B=tail(A)=(d,e,f)head(B)=d最后在做任何运算也应该是d吧?4.8(主对角线元素个数)4.8i+j=18j+i => i=0,j=0 & i=17, j=7 => 有2个解5.99,无穷(n0=n2+1,n0=50 => n2=49 => n=n0+n2=99)6.n\2+17.6,8(B树元素最少为3个,最多为5个)8.不为0和∞的元素个数(0代表自己,无穷代表不连通)ecnu-05-二-1带头结点的链表:统一处理头结点和一般结点环形链表:访问到最后一个结点可以直接返回到第一个结点带头结点的环形链表:同上双向链表:可以向前、向后遍历ecnu-05-二-20 A->1->4->^1 B->2->3->^2 C->0->1->^3 D->^4 E->1->^ecnu-05-二-3错。

同义词的线性探测再散列的元素位置是连续的,但在到达最后一个位置后,会从0开始计算,存储位置不连续(散列表分为1.开放地址法2.拉链法)同义词在被删除后仅仅标记为已删除,方便下次搜索,并没有回收空间,因此可能不连续ecnu-05-二-4()/ \() ()/\ /\60()90()/\ /\40()5050/\1030ecnu-05-二-5a f e|\/ /||/\ / |b c decnu-05-三-1(1)稳定算法:void bucketSort(int p[], int n){int bucket[m] = { 0 };for (int i = 0; i < n; i ++){bucket[p[n]] ++; // 放入桶中}for (int i = 0, n = 0; i < m; i ++){for (int j = 0; j < bucket[i]; j ++){p[n++] = i; // 出}}(2)时间:O(n)~O(n^2)空间:O(m) (m个不同的值)(3)类似于基数排序(Radix Sort),但排序范围受桶个数的限制ecnu-05-三-2// 返回值:0xFF:不是平衡查找树(A VL); -1 or 0 or 1 平衡因子int judgeBin(BiTree *bt){int l = 0, r = 0;if (bt->left != NULL){if (bt->left->data > bt->data) // 左子树的值必须小{return 0xFF;}l = judgeBin(bt->left) + 1; // 计算平衡因子if (l == 0xFF) // 0xFF 标记失败return 0xFF;}if (bt->right != NULL){if (bt->right->data < bt->data){return 0xFF;}r = judgeBin(bt->right) + 1;if (l == 0xFF) // 0xFF 标记失败return 0xFF;}if ((l - r) > 1 || (l - r) < 1)return 0xFF;return l > r ? l : r; // 返回结点高度}。

相关文档
最新文档