严蔚敏数据结构课本源码及习题解析第01章 绪论.docx
《严蔚敏数据结构课本源码及习题解析第01章 绪论.docx》由会员分享,可在线阅读,更多相关《严蔚敏数据结构课本源码及习题解析第01章 绪论.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章绪论一、基础知识题简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。数据(data)是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。存储结构(物理结构)是数据结构在计算机中的表示(又称映像)。数据类型(data type)是一个值的集合和定义在
2、这个值集上的一组操作的总称。抽象数据类型(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。1.1 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。1.2 设有数据结构(D, R),其中D=dlzd2zd3,d4, R=r, r=(d1,d2),(d2,d3),(d3,d4)。试按图论中图的画法惯例画出其逻辑结构图。14试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然
3、数且分母不为零的分数)。复数定义:ADT Complex /复数定义 abi 数据对象:D = a, b | a,b为实数数据关系:R = 基本操作:InitComplex(&C, re, im) 操作结果:构造一个复数C,其实部和虚部分别为re和imDestroyCmoplex(&C) 操作结果:销毁复数C Get(C, k, &e) 初始条件:复数C已存在 操作结果:用e返回复数C的第k元的值 Put(&Cz k, e) 初始条件:复数C已存在 操作结果:改变复数C的第k元的值为e IsAscending(C) 初始条件:复数C已存在 操作结果:如果复数C的两个元素按升序排列,则返回1,否
4、则返回0IsDescending(C) 初始条件:复数C已存在 操作结果:如果复数C的两个元素按降序排列,则返回工,否则返回0Max(C, &e) 初始条件:复数C已存在 操作结果:用e返回复数C的两个元素中值较大的一个Min(C, &e) 初始条件:复数C已存在 操作结果:用e返回复数C的两个元素中值较小的一个/i = k-1fibi = 1;i+;while(i=i-k; j-) fibLi += fibj; i+; ) return fibm;) 假设有A、B、C、D、E五个高等院校进行田径对抗赛,各院校的单项成绩均已存入计算机,并构成一张表,表中每 一行的形式为项目名称性另u校名成绩得
5、分编写算法,处理上述表格,以统计各院校的男、女总分和团体总分,并输出。typedef enum A, B, C, D, E SchoolName;typedef enum FEMALE, MALE SexType;typedef enum X, Y, Z Event; typedef struct(Event e;项目名称SexType sex;性别SchoolName school;校名 int score;得分Component;typedef struct(intmalesum;男团总分intfemalesum;女团总分inttotalsum;团体总分Sum;Component repo
6、rt n; /n条记录Sum result5;算法过程体中主要结构 for(i=0; in; i+)(对result report i. school进行处理)for(s=A; sarrsize或对某个k(1Wkmaxint时,应按出错处理。注意选择你认为较好的 出错处理方法。ttinclude #include 提供宏INT_MAX#include ”././课本算法实现/上。1绪论/Status. h/*A01绪论*/*宏定义*/ttdefine arrsize 20数组长度define maxint INT_MAX最大的整数/*函数原型*/Status Algo_l_19(int i,
7、int a);int main(int argc, char *argv) (int i, aEarrsize;i = 5;printf (计算i!*?. n );if(Algo_l_19(i, a) =0K)printf (作为示例,计算当i = %d 时,ai-l = %dn,z, i, ai-l); printf (Z,nz);return 0; )/*1|题L19:计算i!*2X存入ai-1, i起点为1|*/Status Algo_l_19(int i, int a口) (int j;if(iarrsize) return ERROR;for(j=l; j=i; j+) (if(j=
8、l) aj-l = 2;elseif(maxint/( *j)aj-) return OVERFLOW;aj-l = 2 * j * aj-2;)return OK; 试编写算法求一元多项式= 的值Pn(x),并确定算法中每一语句的执行次数和整个算法的时间复杂度。注意/=0选择你认为较好的输入和输出方法。本题的输入为xo和m输出为Pn(x。)。ttinclude include 提供pow原型/*函数原型*/int Algo_l_20(int a, int x, int n);int main(int argc, char *argv) (int a5 = -2, 3, 6, -8, 7;in
9、t n =:;int Xo = 3;printf (作为示范,设定项数n = 5,变量Xo = 3,计算Pn(Xo).n);printf (/zP%d (%d) = %dn”, n, Xo, Algo_l_20 (a, Xo, n);printf Cn);return 0;)/*|题L20:计算多项式Pn(Xo)的值|I*/int Algo_l_20(int a, int x, int n) (int i;int tmp;for(i=l, tmp=0; i=n; i+)tmp += ai-l*pow(x, i-1);return tmp;ADT Complex有理数定义:ADT Rationa
10、lNumber有理数定义数据对象:D=s, m | s,m为自然数,且m不为0数据关系:R=基本操作:InitRationalNumber(&Rz s, m) 操作结果:构造一个有理数R,其分子和分母分别为s和mDestroyRationalNumber(&R) 操作结果:销毁有理数R Get(Rz k, &e) 初始条件:有理数R已存在 操作结果:用e返回有理数R的第k元的值 Put(&Rz kz e) 初始条件:有理数R已存在 操作结果:改变有理数R的第k元的值为e IsAscending(R) 初始条件:有理数R已存在 操作结果:若有理数R的两个元素按升序排列,则返回T,否则返回。IsD
11、escending(R) 初始条件:有理数R已存在 操作结果:若有理数R的两个元素按降序排列,则返回工,否则返回0Max(Rz &e) 初始条件:有理数R已存在 操作结果:用e返回有理数R的两个元素中值较大的一个Min(R, &e) 初始条件:有理数R已存在 操作结果:用e返回有理数R的两个元素中值较小的一个ADT RationalNumber试画出与下列程序段等价的框图。(l)product = 1;i = 1; while(i = n)product *= i; i+; (2)i=0; do i+;while(i! = n) & (ai!=x);(3)switchcase xy: z=y-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 严蔚敏数据结构课本源码及习题解析第01章 绪论 严蔚敏 数据结构 课本 源码 习题 解析 01
限制150内