云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 北邮数据结构实验题目

北邮数据结构实验题目

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 9:42:35

实验一 线性表

1 实验目的

通过选择下面四个题目之一进行实现,掌握如下内容:

? 熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法 ? 学习指针、模板类、异常处理的使用 ? 掌握线性表的操作的实现方法 ? 学习使用线性表解决实际问题的能力

2 实验内容

2.1题目1

根据线性表的抽象数据类型的定义,选择下面任一种链式结构实现线性表,并完成线性表的基本功能。

线性表存储结构(五选一):

1、 带头结点的单链表 2、 不带头结点的单链表 3、 循环链表 4、 双链表 5、 静态链表

线性表的基本功能:

1、构造:使用头插法、尾插法两种方法

2、插入:要求建立的链表按照关键字从小到大有序 3、删除 4、查找 5、获取链表长度 6、销毁

7、其他:可自行定义

编写测试main()函数测试线性表的正确性。

2.2题目2

利用线性表实现一个通讯录管理,通信录的数据格式如下:

struct DataType {

int ID; char ch;

//编号 //姓名 //性别 //电话 //地址

char name[10];

};

char phone[13]; char addr[31];

要求:

? 实现通讯录的建立、增加、删除、修改、查询等功能

? 能够实现简单的菜单交互,即可以根据用户输入的命令,选择不

同的操作。

? 能够保存每次更新的数据(选作)

? 能够进行通讯录分类,比如班级类、好友类、黑名单等等(选作) ? 编写测试main()函数测试线性表的正确性

2.3题目3

利用线性表实现一个一元多项式Polynomial

f(x) = a0 + a1x + a2x2 + a3x3 + … + anxn

提示:

Polynomial的结点结构如下: struct term {

float coef; //系数 int expn; //指数 };

可以使用链表实现,也可以使用顺序表实现。

要求:

? 能够实现一元多项式的输入和输出 ? 能够进行一元多项式相加 ? 能够进行一元多项式相减 ? 能够计算一元多项式在x处的值 ? 能够计算一元多项式的导数(选作) ? 能够进行一元多项式相乘(选作)

? 编写测试main()函数测试线性表的正确性

2.4题目4

利用循环链表实现约瑟夫问题的求解。

约瑟夫问题如下:已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。

2.5题目5

动态内存管理是操作系统的基本功能之一,用于响应用户程序对内存的申请和释放请求。初始化时,系统只有一块连续的空闲内存;然后,当不断有用户申请内存时,系统会根据某种策略选择一块合适的连续内存供用户程序使用;当用户程序释放内存时,系统将其回收,供以后重新分配,释放时需要计算该内存块的左右是否也为空闲块,若是,则需要合并变成更大的空闲块。

试设计用于模拟动态内存管理的内存池类。 基本要求:

? 实现内存池MemoryPool(int size)的初始化 ? 实现Allocate(int size)接口 ? 实现Free(void *p)接口 ? 实现内存池的析构

? 在分配内存空间时,可选择不同的内存分配策略:最佳拟合策略、

最差拟合策略或最先拟合策略。实现其中至少两种分配策略。

编写测试main()函数对类中各个接口和各种分配策略进行测试,并实时显示内存池中的占用块和空闲块的变化情况。

3代码要求

1、必须要有异常处理,比如删除空链表时需要抛出异常;

2、保持良好的编程的风格:

? 代码段与段之间要有空行和缩近 ? 标识符名称应该与其代表的意义一致 ? 函数名之前应该添加注释说明该函数的功能 ? 关键代码应说明其功能

实验二 扩展线性表

1 实验目的

通过选择下面五个题目之一进行实现,掌握如下内容: ? 进一步掌握指针、模板类、异常处理的使用 ? 掌握栈的操作的实现方法 ? 掌握队列的操作的实现方法 ? 学习使用栈解决实际问题的能力 ? 学习使用队列解决实际问题的能力

2 实验内容

2.1题目1

利用栈结构实现八皇后问题。

八皇后问题19世纪著名的数学家高斯于1850年提出的。他的问题是:在8*8的棋盘上放置8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列、同一斜线上。请设计算法打印所有可能的摆放方法。

提示:

1、可以使用递归或非递归两种方法实现

2、实现一个关键算法:判断任意两个皇后是否在同一行、同一列和同一斜线上

2.2题目2

利用栈结构实现迷宫求解问题。迷宫求解问题如下:

心理学家把一只老鼠从一个无顶盖的大盒子的入口赶进迷宫,迷宫中设置很多隔壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口,测试算法的迷宫如下图所示。

提示:

1、可以使用递归或非递归两种方法实现

2、老鼠能够记住已经走过的路,不会反复走重复的路径 3、可以自己任意设置迷宫的大小和障碍 4、使用“穷举求解”的方法

搜索更多关于: 北邮数据结构实验题目 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验一 线性表 1 实验目的 通过选择下面四个题目之一进行实现,掌握如下内容: ? 熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法 ? 学习指针、模板类、异常处理的使用 ? 掌握线性表的操作的实现方法 ? 学习使用线性表解决实际问题的能力 2 实验内容 2.1题目1 根据线性表的抽象数据类型的定义,选择下面任一种链式结构实现线性表,并完成线性表的基本功能。 线性表存储结构(五选一): 1、 带头结点的单链表 2、 不带头结点的单链表 3、 循环链表 4、 双链表 5、 静态链表 线性表的基本功能: 1、构造:使用头插法、尾插法两种方法 2、插入:要求建立的链表按照关键字从小到大有序 3、删除 4、查找 5、获取链表

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com