2015年广工数据结构ANYVIEW答案

合集下载

广工Anyview试题答案第五章

广工Anyview试题答案第五章

/**********【习题5.002】编写程序,利用while语句在同一行中逐个显示从1至5的数字,每个数字之前保留2个空格。

**********/void main(){int i=1;while(i<=5){printf(" %d",i);i++;}}/**********【习题5.003】编写程序,利用for语句在同一行中逐个显示从1至6的数字,每个数字之前保留2个空格。

**********/void main(){for(int i=1;i<=6;i++)printf(" %d",i);}/**********【习题5.004】n是系统给定的外部整型变量(不需要自行定义)。

编写程序,利用循环语句在同一行中逐个显示从1至n的数字,每个数字之前保留2个空格。

**********/void main(){for(int i=1;i<=n;i++)printf(" %d",i) ;}/**********【习题5.012】请仅在程序空缺处填入合适内容,使其实现功能:依次输入5个整数,计算它们之和并输出。

**********/#include <stdio.h>void main(){ int i,sum=0,n;for (i=1;i<=5;i++){ scanf("%d",&n);sum=sum+n;}printf("sum = %d",sum);}/**********【习题5.020】n和s是系统给定的外部整型变量(不需要自行定义)。

编写程序,求1到n之间的整数之和,并将结果存放到s。

**********/void main(){for(int i=1;i<=n;i++)s+=i;}/**********【习题5.022】n是系统给定的外部变量。

广工Anyview试题答案

广工Anyview试题答案

/**********【习题9.023】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char name[20];struct date birth; //出生日期};结构体数组s存储了n个人的名字和出生日期。

写一函数,求这n个人中年龄最大(即出生日期最小)者的姓名。

**********/char *oldest(student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k].name;}/**********【习题9.025】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char id[10]; //学号char name[20]; //姓名struct date birth; //出生日期};结构体数组s存储了n个人的学号、名字和出生日期。

写一函数,以结构体的形式返回这n个人中年龄最大(即出生日期最小)者的信息。

**********/struct student oldest(struct student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k];}/**********【习题9.027】结构体类型定义如下:struct student{ char id[10]; //学号char name[10]; //姓名int score[5]; //各门课成绩};结构体数组s存储了n个学生的学号、名字和各门课成绩。

(完整版)数据结构课后习题答案(可编辑修改word版)

(完整版)数据结构课后习题答案(可编辑修改word版)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构课后习题答案

数据结构课后习题答案

数据结构课后习题答案第1章绪论一、基础知识题1.1 简述下列概念数据,数据元素,数据类型,数据结构,逻辑结构,存储结构,算法。

【解答】数据是信息的载体,是描述客观事物的数、字符,以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。

数据元素是数据的基本单位。

在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。

数据类型是对数据的取值范围、数据元素之间的结构以及允许施加操作的一种总体描述。

每一种计算机程序设计语言都定义有自己的数据类型。

“数据结构”这一术语有两种含义,一是作为一门课程的名称;二是作为一个科学的概念。

作为科学概念,目前尚无公认定义,一般认为,讨论数据结构要包括三个方面,一是数据的逻辑结构,二是数据的存储结构,三是对数据进行的操作(运算)。

而数据类型是值的集合和操作的集合,可以看作是已实现了的数据结构,后者是前者的一种简化情况。

数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。

数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则依赖于存储结构。

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

是逻辑结构在存储器中的映像,包括数据元素的表示和关系的表示。

逻辑结构与计算机无关。

算法是对特定问题求解步骤的一种描述,是指令的有限序列。

其中每一条指令表示一个或多个操作。

一个算法应该具有下列特性:有穷性、确定性、可行性、输入和输出。

1.2数据的逻辑结构分哪几种,为什么说逻辑结构是数据组织的主要方面?【解答】数据的逻辑结构分为线性结构和非线性结构。

(也可以分为集合、线性结构、树形结构和图形即网状结构)。

逻辑结构是数据组织的某种“本质性”的东西:(1)逻辑结构与数据元素本身的形式、内容无关。

(2)逻辑结构与数据元素的相对位置无关。

(3)逻辑结构与所含数据元素的个数无关。

数据结构课后习题答案1--7

数据结构课后习题答案1--7

数据结构课后习题答案1--7题目1:请你设计一个栈数据结构,使其具备以下功能:可以在O(1)的时间复杂度内获取栈的最小元素。

解答1:要实现在O(1)的时间复杂度内获取栈的最小元素,可以使用两个栈来实现。

一个栈用来保存原始数据,另一个栈用来保存当前栈的最小元素。

具体实现如下:1. 初始化两个栈:stack和min_stack,其中stack用于保存所有元素,min_stack用于保存当前栈中的最小元素。

2. 插入元素时,先将元素插入stack中,然后判断插入的元素是否比min_stack的栈顶元素小,如果是,则将元素也插入到min_stack中;如果不是,则将min_stack的栈顶元素再次插入到min_stack中。

3. 删除元素时,分别从stack和min_stack中弹出栈顶元素。

这样,min_stack的栈顶元素始终是stack中的最小元素。

题目2:请你设计一个队列数据结构,使其具备以下功能:可以在O(1)的时间复杂度内获取队列的最大元素。

解答2:要实现在O(1)的时间复杂度内获取队列的最大元素,可以使用两个队列来实现。

一个队列用来保存原始数据,另一个队列用来保存当前队列的最大元素。

具体实现如下:1. 初始化两个队列:queue和max_queue,其中queue用于保存所有元素,max_queue用于保存当前队列中的最大元素。

2. 插入元素时,先将元素插入queue中,然后判断插入的元素是否比max_queue的队尾元素大,如果是,则将元素也插入到max_queue的队尾;如果不是,则将max_queue中所有比插入元素小的元素都弹出,再将插入元素插入到max_queue的队尾。

3. 删除元素时,分别从queue和max_queue中弹出队头元素。

这样,max_queue的队头元素始终是queue中的最大元素。

题目3:请你设计一个栈数据结构,使其除了具有常规的入栈和出栈功能外,还具备以下功能:能够在O(1)的时间复杂度内获取栈中的最大元素。

数据结构习题答案 .doc

数据结构习题答案 .doc

单元练习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)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个方面的内容。

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

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

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

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

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

广东工业大学数据结构Aniview系统第三章参考答案

广东工业大学数据结构Aniview系统第三章参考答案

广东工业大学数据结构Aniview第三章参考答案◆3.17③试写一个算法,识别依次读入的一个以@为结束符的字符序列是否为形如'序列1&序列2'模式的字符序列。

其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序列。

例如,'a+b&b+a'是属该模式的字符序列,而'1+3&3-1'则不是。

实现下列函数:Status match(char *str);/* 若str是属该模式的字符序列,*//* 则返回TRUE,否则返回FALSE */Stack是一个已实现的栈。

可使用的相关类型和函数:typedef char SElemType; // 栈Stack的元素类型Status InitStack(Stack &s);Status Push(Stack &s, SElemType e);Status Pop(Stack &s, SElemType&e);Status StackEmpty(Stack s);Status GetTop(Stack s, SElemType&e);Status match(char *str)/* 若str是属该模式的字符序列,*//* 则返回TRUE,否则返回FALSE */{ Stack S;inti;SElemType e;InitStack(S);for(i=0;str[i]!='&';i++){ Push(S,str[i]); }for(i=i+1;!StackEmpty(S)&&str[i]!='@';i++){Pop(S,e);if(e!=str[i]){ return FALSE;}}if(StackEmpty(S)&&str[i]=='@'){ return TRUE;}}3.18②试写一个判别表达式中开、闭括号是否配对出现的算法。

2015年广工数据结构Anyview答案-推荐下载

2015年广工数据结构Anyview答案-推荐下载

/********** 1.18【题目】试编写算法,计算 i!×2^i 的值并存入数组 a[0..n-1]的第 i-1 个分量中 (i=1,2,…,n)。假设计 算机中允许的整数最大值为 MAXINT,则当对某个 k (1≤k≤n)使 k!×2^k>MAXINT 时,应按出错处理。注意 选择你认为较好的出错处理方法。 **********/ Status Series(int a[], int n) /* 求 i!*2^i 序列的值并依次存入长度为 n 的数组 a; */ /* 若所有值均不超过 MAXINT,则返回 OK,否则 OVERFLOW */ {
long m=1; for(int i=1;i<=n;i++) {
m=m*i*2; if(m<=MAXINT) {
a[i-1]=m; } else return OVERFLOW; } return OK; } /********** 1.23【题目】假设有 A、B、C、D、E 五个高等院校进行田径对抗赛, 各院校的单项成绩均以存入计算机并构成一张表,表中每一行 的形式为: 项目名称 性别 校名 成绩 得分 编写算法,处理上述表格,以统计各院校的男、女总分和团体 总分,并输出。 **********/
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置2试时32卷,3各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并25工且52作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015年广工数据结构Anyview答案
/**********
1.06【题目】试写一算法,实现顺序栈的判空操作
StackEmpty_Sq(SqStack S)。

顺序栈的类型定义为:
typedef struct {
ElemType *elem; // 存储空间的基址
int top; // 栈顶元素的下一个位置,简称栈顶位标 int size; // 当前分配的存储容量
int increment; // 扩容时,增加的存储容量
} SqStack; // 顺序栈
***********/
Status StackEmpty_Sq(SqStack S)
/* 对顺序栈S判空。

*/
/* 若S是空栈,则返回TRUE;否则返回FALSE */
{
if(S.top == 0)
return TRUE;
else
return FALSE;
}
/**********
1.08【题目】试编写算法求一元多项式
P(x) = a0 + a1x + a2x^2 + ... + anx^n
的值P(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度。

**********/
float Polynomial(int n, int a[], float x)
/* 求一元多项式的值P(x)。

*/
/* 数组a的元素a[i]为i次项的系数,i=0,...,n */
{
float jieguo=a[n]; //1次
for(int i=n-1;i&gt;=0;i--) //n次
{
jieguo=a[i]+x*jieguo;
}
return jieguo; //整体时间复杂度T(n)=O(n)
}。

相关文档
最新文档