数据结构(电子版)

2019-01-07 17:44

西 安 邮 电 大 学

(计算机学院)

数据结构课内实验报告

实验名称: 线性表的应用

专业名称: 网络工程 班 级: 学生姓名: 学号(8位): 指导教师:

实验日期: 2015年 月 日

一. 实验目的及实验环境 目的:对线性表的运用 环境:VC++; 二. 实验内容

(1).约瑟夫环问题:编号为1,2,,,,n的n个人按顺时针方向围坐在一张圆桌周围,给定一个正整数m<=n;从第一个人开始顺时针方向自1开始报数,每报到m时就让其出列,且计数继续进行下去。如此下去,直至圆桌周围的人全部出列为止。最后出列者为优胜者。每个人的出列次序定义了整数1,2,3,...,n的一个排列。这个排列称为一个(n,m)Josephus排列。例如:(7,3)Josephhus排列为3,6,2,7,5,1,4。对于给定的1,2,3,...,n中的k个数,Josephus想知道是否存在一个正整数m,使得Josephus(n,m)排列的最后k个数恰好为事先指定的k个数。

(2).一元多项式的加法与减法的实现,如:P0+P1X+P2X^1+,,,,,,,,,,,,+PnX^n;

(3)带头结点的线性单链表a=(a1,a2,a3,,,,,,,,,,an),b=(b1,b2,b3,,,,,,,,,bm); 需编写一程序将a,b安以下方式合并成一个线性单链表 C=(a1,b1,a2,b2,,,,,,,,,,,,an,bm);m<=n; C=(b1,a1,b2,a2,,,,,,,,,,,,,bm,an);m>n;

三.方案设计 (1)。A.建立n个结点(无头结点)的单向循环链表。B.从链表第一个结点起循环计数寻找第m个结点C.id值,将该节点的password作为新的m值,删除该结点。D.根据m值不断从链表中删除结点,知道链表为空。

(2).(A).建立多项式:通过键盘输入一组多项式的系数和指数,用尾插法建立一元多项式的链表,通过控制输入0来结束建立,并在输入时指数要按照从小到大输入(B).,建立输出多项式的函数:从单链表第一个节点开始,逐项输出其指数和系数,并按多项式的形式输出即可。(C).实现两多项式的加法:分别建立两个多项式单链表a,b,并新建里一个链表用来存放相加后结果的指数和系数。用两个指针p,q,,p指向a链表的头结点,q指向b链表的头结点。若(p->indexindex)指数小的若是a直接则存入新链表C中,若(p->index==q->index)若相等,系数相加,指数不变存入C中,若(p->index>q->index)指数小的是b,直接存入C中。最后若a先结束,则直接将b存入新链表中,若b先结束,直接将a存入新链表中。(D)实现多项式的减法:将减数b的多线式所有系数都变为其相反数,然后进行两个多项式加法处理即可。

(3).A.先建立线性单链表,通过函数的调用可建立,a,b,两个线性单链表,链表的结点数可通过在主函数中输入n,m,来控制。B.进行两连表的合并,可新创一个链表进行插入,也可在原链表中直接将另一个链表插入。我选择了第二种,直接将b插入a中。C.合并的实现:将b的节点删除一个,然后隔一个a的节点插入一个,a需要两个指针,联动跑,而b则只需一个指针即可。 四.测试数据及运行结果

1.正常测试数据(3组)及运行结果; (1)约

瑟夫环:

(2)多项

式:

(3)合并多项


数据结构(电子版).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:如何增强小学语文课堂提问的有效性

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: