- 36
- 0
- 约9.28千字
- 约 32页
- 2018-03-26 发布于广东
- 举报
1)、初始化: Status InitQueue( LinkQueue Q) Q、rear=(QueuePtr) malloc(sizeof(Qnode)); If(!Q.rear) exit(OVERFLOW); Q.rear-next=Q.rear; Return ok; } 第一章绪论习题 算法设计部分 1、试写一算法,自大至小依次输出顺序读入的三个整数X,Y,Z的值。 分析:可以通过比较将三个值按大小次序依次 放在X,Y,Z中。 XY: X Y:大者放在X中; YZ: Y Z:Z中存放三个数中最小者; XY: X Y:X中存放最大者 算法如下: void Sort (int x,int y,intz) { if (xy) { temp=x; x=y; y=temp;} if (yz}{ temp=z; z=y; if (x≥temp) y=temp; else {y=x;x=temp;} } return ok; }//Sort If (yz) { temp=y; y=z; z=temp; if (xy) {temp=x; x=y; y=temp;} } 2、假设有A、B、C、D、E五个高等院校进行田径对抗赛,各院校的单项成绩均已存入计算机,并构成一张表,表中每一行的形式为: 编写算法,处理上述表格,以统计各院校的男、女总分和团体总分。 需要考虑的问题: 1、选用什么样的存储结构存储该表格; 2、如何求各院校的男、女总分和团体总分。 项目名称 性别 校名 成绩 得分 存储结构的定义: typedef enum {A,B,C,D,E} Schoolname typedef enum {female,male} SexType typedef struct { char event[3]; //项目 SexType sex; //性别 SchoolName school;// 校名 int score;//得分 }Component; typedef struct { int malesum;//男团总分 int femalesum;//女团总分 int totalsum;//团体总分 }sum; Component report[n]; Sum result[5]; 算法如下: Void BGCL( ){ 初始化result数组; for(I=0;In;I++) { result[report[i].school].totalsum +report[i].score; if (report[i].sex=“男”) result[report[i].school].malesum+ report[i].score; else result[report[i].school].femalesum+ report[i].score ; } 输出各个学校的成绩; } 基础知识 一、填空题 1、数据结构是研究数据的 和 以及他 们之间的相互关系,并对这种结构定义相应的 ,设计相应的 ,而确保经过这些 运算后所得到的新结构是 原来的 结构类型 物理结构 逻辑结构 运算 算法 2、一个数据结构用二元组表示时,它包括 集合D和 集合R。 3、一个算法应具有 、 、 、 数据元素 关系 有穷性 确定性 可行性 0或多个输入 这五个特性 1或多个输出 4、一个算法的时间复杂度是该算法包含 多少, 它是一个算法运行时间的 ,一个算法 的空间复杂性是指该算法在运行过程中临时占用的
原创力文档

文档评论(0)