《数 据 结 构 与 算 法》 实 验 指 导 书 2 0 1 3 年 8 月 2 目 录 实验一 C 语言编程复习 ..................................................................... 3 实验二 线形表基本操作的实现 ........................................................ 7 实验三 栈和队列基本操作的实现及应用 ...................................... 1 8 实验四 二叉树算法的实现 .............................................................. 3 3 实验五 图的算法的实现 .................................................................. 4 9 实验六 查找算法的实现 .................................................................. 6 9 实验七 排序算法的实现 ................................................................ 8 1 3 实验一 C 语言编程复习 一 、实验目的 1.熟 悉 C 语 言 的 上 机 环 境 , 进 一 步 掌 握 C 语 言 的 结 构 特 点 。 2.理 解 指 针 与 应 用 的 区 别 。 3.掌 握 结 构 体 的 使 用 。 4.掌 握 简 单 排 序 方 法 。 二、实验内容 (1) 输入一行字符,计算该行字符中包含多少个单词,单词之间用空格分隔开。 (2) 利用add 函数求两个复数2+3i和4+5i的和。(要求用结构体来定义复数) (3) 一个班上有30 名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。 三、实验步骤 (1) 用 数 组 或 字 符 串 获 取 字 符 , 碰 到 空 格 即 表 示 新 单 词 的 开 始 。 (2) 要 求 用 结 构 体 来 定 义 复 数 , 包 括 实 部 和 虚 部 。 (3) 定 义 一 个 Stu dent 的 结 构 体 类 型 , 包 含 学 号 、姓名、成绩等成员。 四、实现提示 struct student 4 { char num[6]; string name; float score[3]; float aver; }; 五 、思考与提高 思 考 为 何 void Sw ap1(Student, Student )这 个 函 数 无 法 实 现 两个 学生的交换? 六、完整参考程序 1、 #include #include using namespace std; void m...