数据结构实验报告2

2020-04-14 18:21

数据结构实验报告

姓名: 学号: 专业:电子商务 班 级:10-1班

指导教师:张先宜 实验时间: 实验地点:合工大新区四号实验楼

链表试验

1. 实验内容和要求 内容:

编写算法实现下列问题的求解。

<1>求链表中第i个结点的指针(函数),若不存在,则返回NULL。 实验测试数据基本要求:

第一组数据:链表长度n≥10,i分别为5,n,0,n+1,n+2 第二组数据:链表长度n=0,i分别为0,2 <2>在第i个结点前插入值为x的结点。 实验测试数据基本要求:

第一组数据:链表长度n≥10,x=100, i分别为5,n,n+1,0,1,n+2 第二组数据:链表长度n=0,x=100,i=5 <3>删除链表中第i个元素结点。 实验测试数据基本要求:

第一组数据:链表长度n≥10,i分别为5,n,1,n+1,0 第二组数据:链表长度n=0, i=5

<4>在一个递增有序的链表L中插入一个值为x的元素,并保持其递增有序特性。 实验测试数据基本要求:

链表元素为 (10,20,30,40,50,60,70,80,90,100), x分别为25,85,110和8

<5>将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),申请2个头结点,把分开的奇数项和偶数项分别链接到这2个头结点上,然后再将这两个新链表同时输出在屏幕上,并保留原链表的显示结果,以便对照求解结果。 实验测试数据基本要求:

第一组数据:链表元素为 (1,2,3,4,5,6,7,8,9,10,20,30,40,50,60) 第二组数据:链表元素为 (10,20,30,40,50,60,70,80,90,100)

<6>求两个递增有序链表L1和L2中的公共元素,并以同样方式连接成链表L3。 实验测试数据基本要求: 第一组

第一个链表元素为 (1,3,6,10,15,16,17,18,19,20)

第二个链表元素为 (1,2,3,4,5,6,7,8,9,10,18,20,30) 第二组

第一个链表元素为 (1,3,6,10,15,16,17,18,19,20) 第二个链表元素为 (2,4,5,7,8,9,12,22) 第三组

第一个链表元素为 ()

第二个链表元素为 (1,2,3,4,5,6,7,8,9,10)

要求:

一、本次实验中的链表结构均为带头结点的单链表; 二、链表结构定义,算法实现放入库文件“linkList.h”; 三、运算和变量命名直观易懂,并有相应的注释。 2. 实验目的

一、理解线性表的链式存储结构。

二、熟练掌握单链表结构及有关算法的设计。

三、根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。

3. 数据结构设计

typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList;

4. 算法设计

#include\void main() {

LinkList LA, La,Lb,Lc,A,B,C; ElemType e; int pos,Len_La; InitLinkList(La); InitLinkList(LA); InitLinkList(Lb); InitLinkList(Lc); InitLinkList(C); InitLinkList(A); InitLinkList(B);

puts(\以下为第1题程序***\ printf(\的长度为: \ scanf(\ putchar('\\n');

FillLinkList(La,Len_La); putchar('\\n');

printf(\添加元素后的La为:\\n\ PrintLinkList(La,Len_La); putchar('\\n');

printf(\请输入要插入新节点的位置:\

scanf(\

printf(\请输入要插入新节点的值:\ scanf(\

LinkListInsert(La,pos,e); Len_La++; putchar('\\n');

printf(\插入新节点后的La为:\\n\ PrintLinkList(La,Len_La); putchar('\\n');

puts(\以下为第2题程序***\ printf(\请输入要删除节点的位置:\ scanf(\

LinkListDelete(La,pos,e); Len_La--; putchar('\\n');

printf(\删除节点后的La为:\\n\ PrintLinkList(La,Len_La); putchar('\\n');

puts(\以下为第3题程序***\ printf(\请输入要查找的节点的值:\ scanf(\

pos = LinkListLocate(La,e);

printf(\值为%d的节点的位置是:%d\\n\ putchar('\\n');

puts(\以下为第4题程序***\ printf(\的长度为: \ scanf(\ putchar('\\n');

FillLinkList(LA,Len_La); putchar('\\n');

printf(\添加元素后的La为:\\n\ PrintLinkList(LA,Len_La); putchar('\\n');

printf(\请输入要插入新节的值为:\ scanf(\ ListInsert(LA,e); Len_La++;

putchar('\\n');

printf(\插入新节点后的La为:\\n\ PrintLinkList(LA,Len_La); putchar('\\n'); InitLinkList(La);

puts(\以下为第5题程序***\ printf(\的长度为: \

scanf(\ putchar('\\n');

FillLinkList(La,Len_La); putchar('\\n');

printf(\添加元素后的La为:\\n\ PrintLinkList(La,Len_La); putchar('\\n'); wjj(La,Lb,Lc); putchar('\\n'); printf(\为:\\n\ PrintLinkList1(Lb); putchar('\\n');

printf(\为:\\n\ PrintLinkList1(Lc); putchar('\\n');

puts(\以下为第6题程序***\ printf(\的长度为: \ scanf(\ putchar('\\n');

FillLinkList(A,Len_La); putchar('\\n');

printf(\的长度为: \ scanf(\ putchar('\\n');

FillLinkList(B,Len_La); putchar('\\n'); wji(A,B,C);

printf(\为:\\n\ PrintLinkList1(C); }

5. 运行和测试


数据结构实验报告2.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:药理学习题5

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

马上注册会员

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