北京邮电大学信息与通信工程学院 第1 页 数据结构实验报告 实验名称: 实验1 ——线性表 学生姓名: 班 级: 班内序号: 学 号: 日 期: 1 .实验要求 实验目的: 熟悉 C++语言的基本编程方法,掌握集成编译环境的测试方法 学习指针、模板类、异常处理的使用 掌握线性表的操作实现方法 培养使用线性表解决实际问题的能力 实验内容: 利用线性表实现一个一元多项式 Polynomial; f(x)=a0+a1x+a2x2+a3x3+…+anxn 提示:Polynomial 的结点结构如下: struct term { float coef;\\系数 int expn;\\指数 }; 可以使用链表实现,也可以使用顺序表实现 具体要求如下: 能够实现一元多项式的输入和输出 能够进行一元多项式相加 能够进行一元多项式相减 能够计算一元多项式在 x 处的值 能够计算一元多项式的导数(选作) 能够进行一元多项式相乘(选作) 编写 main ()函数测试算法的正确性 2 . 程序分析 由于多项式是线性结构,故选择线性表来实现,在这个程序中我采用的是单链表结构,每个结点代表一个项,多项式的每一项可以用其系数和指数唯一的表示。如果采用顺序存储,北 京 邮 电 大 学 信 息 与 通 信 工 程 学 院 第 2页 那 么 对 于 结 点 的 插 入 和 删 除 的 操 作 会 比 较 麻 烦 , 而 且 顺 序 表 的 结 点 个 数 固 定 , 对 于 可 能 发 生的 情 况 无 法 很 好 的 处 理 , 而 采 用 链 表 就 会 简 单 许 多 , 还 能 自 由 控 制 链 表 的 长 度 。 本 程 序 完 成 的 主 要 功 能 : 1、 输 入 和 输 出 : 需 要 输 入 的 信 息 有 多 项 式 的 项 数 , 用 来 向 系 统 动 态 申 请 内 存 ; 多 项 式 各 项的 系 数 和 指 数 , 用 来 构 造 每 个 结 点 , 形 成 链 表 。 输 出 即 是 将 多 项 式 的 内 容 向 屏 幕 输 出 。 2、 多 项 式 相 加 与 相 减 : 多 项 式 的 加 减 要 指 数 相 同 即 是 同 类 项 才 能 实 现 , 所 以 在 运 算 时 要 注意 判 断 指 数 出 现 的 各 种 不同 的 情 况 , 分别写出 计算 方法 。 将 每 项 运 算 得到的 结 果都插 入 到新的 链 表 中, 形 成 结 果多 项...