实验一 线性结构
一、实验目的:
1.掌握线性表的链式存储结构。
2.熟练地利用链式存储结构实现线性表的基本操作。
3.能熟练地掌握链式存储结构中算法的实现。
二、实验内容:
1.用头插法或尾插法建立带头结点的单链表。
2.实现单链表上的插入、删除、查找、修改、计数、输出等基本操作 。
三、实验要求:
1. 根据实验内容编写程序,上机调试、得出正确的运行程序。
2. 写出实验报告(包括源程序和运行结果)。
四、实验学时:4 学时
五、实验步骤:
1.进入编程环境,建立一新文件;
2. 参考以下相关内容,编写程序,观察并分析输出结果。
① 定义单链表的数据类型,然后将头插法和尾插法、插入、删除、查找、修改、计数、
输出等基本操作都定义成子函数的形式,最后在主函数中调用它,并将每一种操作前后的结
果输出,以查看每一种操作的效果。
② 部分参考程序(略)
六、实践部分
选作实验可以从以下两个实验中任选一个:
1 试设计一元多项式相加(链式存储)的加法运算。
A(X)=7+3X+9X
8
+5X
9
B(X)=8X+22X
7
-9X
8
1.建立一元多项式;
2.输出相应的一元多项式;
3.相加操作的实现。
2 约瑟夫生死环
利用单循环链表存储结构,解决约瑟夫(Josephus)环问题。即:将编号是 1,2,…,n(n>0)
的 n 个人按照顺时针方向围坐一圈,每人持有一个正整数密码。开始时任选一个正整数作为
报数上限值 m,从某个人开始顺时针方向自 1 开始顺序报数,报到 m 时停止报数,报 m 的人
出列,将他的密码作为新的 m 值,从他在顺时针方向的下一个人开始重新从 1 报数,如此
下去,直到所有的人全部出列为止。令 n 最大值取 30。设计一个程序,求出出列顺序,并
输出结果。