北京理工大学数据结构实验报告1

《数据结构与算法统计》

实验报告

学院:

班级:

学号:

姓名:

一、实验目的

1.熟悉VC++6.0环境,学习使用C++实现链表的存储结构;

2.通过编程,上机调试,进一步理解线性表、链表、环表的基本概念。

二、实验内容

    采用单向环表实现约瑟夫环。

请按以下要求编程实现:

①   从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的结点编号依次为1,2,……,m。

②   从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。

例如,m=10,s=3,n=4。则输出序列为:6,10,4,9,5,2,1,3,8,7。

三、程序设计

1、概要设计

应用单向环表寄存数字序列。

⑴单向环表的抽象数据类型线性表的定义如下:

ADT LinkList {

       数据对象:

              D = { ai | ai ÎElemSet, i=1,…,n,n≥0 }

       数据关系:

              R1 = { <ai-1, ai> | ai-1,ai ÎD, i=2, …,n }

       基本操作:

      Creat(LinkList &L,int m)

                  操作结果:构造一个有m个结点的单向环表L。

              found(LinkList L,int s)

                  初始条件:单向环表L已经存在。

                  操作结果:找到单向环表L的第s个结点。

              ysf(LinkList h,int n)

初始条件:单向环表L已经存在,且本次查找的起始结点h已找到。

                  操作结果:进行约瑟夫环的计算并输出相应值。

} ADT LinkList

⑵主程序流程

    主程序首先调用Creat(LinkList &L,int m)函数,创建含有m个结点的单向环表L;再调用found(LinkList L,int s)函数查找第s个结点;最后调用ysf(LinkList h,int n)函数,进行约瑟夫环的计算并在屏幕上显示计算结果。

⑶模块调用关系

    由主函数模块调用创建模块、查找模块和计算模块。

由计算模块将结果输出。

⑷流程图

 2、详细设计

实现概要设计中的主要功能,画出时序图并解释说明,对其中用到的主要函数用法进行说明。

⑴数据类型设计

typedef struct LNode

{

    int data;

    LNode *next;

}LNode,*LinkList;  //结点类型,指针类型

⑵操作算法设计

void Creat(LinkList &L,int m)

//创建一个具有m个结点的单向环表

{

    int i,j;

    LinkList p,h,q;

    L=(LinkList)malloc(sizeof(LNode));

    L->next=NULL; //建立头结点

    h=L;

    for(i=m;i>0;i--)

    {

           p=(LinkList)malloc(sizeof(LNode));

           p->data=i;

           p->next=L->next;

           L->next=p; //插入到表尾

    }

    q=h->next;

    j=1;

    while(j<m)

    {

           q=q->next;

           j++;

    }

    q->next=h->next;

//将末尾结点指向第一个数据结点,形成环表

}

LinkList found(LinkList L,int s)

//找到第s个结点

{

    LinkList p;

    int j;

    p=L->next;

    j=1;

    while(j<s)

    {

           p=p->next;

           j++;

    }

    return p;

}

void ysf(LinkList h,int n)

//进行约瑟夫环计算

{

    LinkList p,q;

    int num;

    num=1;

    if(h->next!=h)//递归终止条件

    {

           p=h;

           while(num<n-1)

           {

                  p=p->next;

                  num++;

           }//找到第n-1个结点

           q=p->next;

           printf("%d,",q->data);//输出结点序号

           p->next=q->next;

           free(q);//删除该结点

           h=p->next;//下次进行约瑟夫环计算的起始结点

           ysf(h,n);//递归调用

    }

    else

    {

           printf("%d\n",h->data);

    }

}

⑶主函数设计

void main()

{

    LinkList L,h;

    int m,s,n;

    scanf("%d",&m);

    Creat(L,m);//创建环表

    scanf("%d",&s);

    scanf("%d",&n);

    printf("m=%d\n",m);

    printf("s=%d\n",s);

    printf("n=%d\n",n);

    h=found(L,s);//找到第s个结点

    ysf(h,n);//进行约瑟夫环计算并输出结点序号

}

四、程序调试分析

⑴在构造数据类型时,未写typedef,导致编译一直无法通过,在调试时浪费了很多时间。以后应注意对于基本概念的掌握和理解。

⑵在进行约瑟夫环计算时,采用递归算法,但忽略了递归终止条件if(h->next!=h)。经过反复查找错误及老师的指正,加深了对递归函数的理解和掌握。

五、程序运行结果

首先用户输入m、s、n的值,可在屏幕上显示出来;

再将约瑟夫环计算结果按顺序在屏幕上显示出来

测试1:

10 3 4 

m=10

s=3

n=4

6,10,4,9,5,2,1,3,8,7

测试2:

10 2 3

m=10

s=2

n=3

4,7,10,3,8,2,9,6,1,5

六、程序清单

#include <iostream>

#include <stdlib.h>

#include <stdio.h>

typedef struct LNode//数据类型设计

{

    int data;

    LNode *next;

}LNode,*LinkList;

void Creat(LinkList &L,int m);

void ysf(LinkList h,int n);

LinkList found(LinkList L,int s);

void main()

{

    LinkList L,h;

    int m,s,n;

    scanf("%d",&m);

    Creat(L,m);//创建有m个结点的单向环表

    scanf("%d",&s);

    scanf("%d",&n);

    printf("m=%d\n",m);

    printf("s=%d\n",s);

    printf("n=%d\n",n);

    h=found(L,s);//查找第s个结点

    ysf(h,n);//进行约瑟夫环计算

}//主函数

void Creat(LinkList &L,int m)

//构造一个有m个结点的单向环表

{

    int i,j;

    LinkList p,h,q;

    L=(LinkList)malloc(sizeof(LNode));

    L->next=NULL;//建立头结点

    h=L;

    for(i=m;i>0;i--)

    {

           p=(LinkList)malloc(sizeof(LNode));//申请空间

           p->data=i;

           p->next=L->next;

           L->next=p;//插入到表尾

    }

    q=h->next;

    j=1;

    while(j<m)

    {

           q=q->next;

           j++;

    }

    q->next=h->next;

//将末尾结点指向第一个数据结点,形成环表

}

LinkList found(LinkList L,int s)

//找到第s个结点

{

    LinkList p;

    int j;

    p=L->next;

    j=1;

    while(j<s)

    {

           p=p->next;

           j++;

    }

    return p;

}//查找函数

void ysf(LinkList h,int n)

//进行约瑟夫环计算并输出结果

{

    LinkList p,q;

    int num;

    num=1;

    if(h->next!=h)//循环终止条件

    {

          

           p=h;

           while(num<n-1)//找到第n-1个结点

           {

                  p=p->next;

                  num++;

           }

           q=p->next;

           printf("%d,",q->data);//输出结点序号

           p->next=q->next;

           free(q);//释放该结点

           h=p->next;//下次进行约瑟夫环计算的起始结点

           ysf(h,n);//递归调用

    }

    else

    {

           printf("%d\n",h->data);

    }

}//约瑟夫环计算函数并输出结果

 

第二篇:数据结构实验报告1--16

北京物资学院信息学院实验报告-1

课程名__ 数据结构 实验名称_顺序存储的线性表的简单操作实现

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握顺序存储的线性表的简单操作

2、理解数据结构中不同存储实现下的头文件(list.h)

二、实验内容

编写一个程序依次实现如下功能:

(1)让计算机产生出20个0——9之间的随机数或由数组带入,并依次保存到顺序存储的线性表中(正序);

(2)输出此线性表;

(3)从此线性表中删除给定值相等的所有结点(给定值程序运行时输入);

(4)再次输出此表;

(5)输出此表长度。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-2

课程名__ 数据结构 实验名称_顺序存储的线性表的操作实现的应用实例 实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握结构型数据的实际应用原理

2、掌握顺序存储的线性表的操作实现的实际应用

二、实验内容

以教材中P64讨论的货物库存记录表为例,对2-1.CPP程序进行实践应用 (要求以组为单位,为2-1.CPP添加至少一个功能,功能自定)

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-3

课程名__ 数据结构 实验名称_链接存储的线性表的简单操作实现和实际应用 实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握链接存储的线性表的简单操作

2、理解数据结构中不同存储实现下的头文件(link.h)

3、掌握结构型数据的实际应用原理

4、掌握顺序存储的线性表的操作实现的实际应用

二、实验内容

1、编写一个程序依次实现如下功能:

(1)让计算机产生出20个0——9之间的随机数并依次保存到链接存储的线性表中(正序);

(2)输出此线性表;

(3)从此线性表中删除给定值相等的所有结点(给定值程序运行时输入);

(4)再次输出此表;

(5)输出此表长度。

2、以教材中P64讨论的货物库存记录表为例,对2-1.CPP程序进行链接存储实现的实际应用(选作)

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-4

课程名__ 数据结构 实验名称 栈及栈的应用

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握栈的顺序存储和链接存储及栈操作

2、理解栈的不同存储实现下的头文件(stack.h和linkstack.h)的应用

二、实验内容

1、编写一个程序实现如下功能:从键盘上输入一批字符,然后按照相反的次序打印出来。

2、编写一个程序,以教材中P126的BracketCheck函数为功能主体,实现任意程序的括号的匹配检查。

3、(选作)用栈实现算术表达式的计算。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-5

课程名__ 数据结构 实验名称 栈与递归

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、理解递归运算中栈的应用原理和变化情况

2、掌握递归算法实现

二、实验内容

1、编写递归算法求解2的值,并用程序实现n值在程序运行时输入。

2、编写一个程序,以教材中P140的Coding函数为功能主体,给出n位布尔值的所有可能的组合,n值在程序运行时输入。

3、(选作)求解迷宫问题。以教材P142例3为例。

n

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-6

课程名__ 数据结构 实验名称_队列及队列的应用

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握队列的顺序存储和链接存储及队列操作

2、理解队列的不同存储实现下的头文件(queue.h和linkqueue.h)的应用

二、实验内容

1、编写一个程序实现如下功能:从键盘上输入一批字符,然后按照相同的次序打印出来。

2、编写一个程序要求如下:

1)建立一个顺序存储的队列

2)控制循环次数在程序运行时输入

3)在每次循环时产生两个100以内的整数,队未满时进队,之后,一个元素出队,每次进队元素和出队元素值在屏幕上显示输出

4)循环结束后,队列中的剩余元素顺序出队,并输出。

3、编写一个程序要求如下:

1)建立两个链队q1、q2

2)随机产生20个100以内的正整数,分奇、偶数进q1、q2

3)出队,每次一行输出一对奇、偶数,直到其中一队为空

4)统计奇、偶数相配的个数

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-7

课程名__ 数据结构 实验名称_稀疏矩阵的存储结构及算法实现

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握稀疏矩阵的顺序存储和带行指针向量的链接存储及带行、列指针向量的十字链接存储

2、理解稀疏矩阵的不同存储实现下的头文件(SMatrix.h 、LMatrix.h和 CLMatrix.h)的应用

二、实验内容

1、编写一个程序要求如下:

1)建立一个稀疏矩阵的顺序存储结构

2)输出每个非零元素值

3)转置并输出

2、(选作)编写一个程序要求如下:

1)建立一个稀疏矩阵的带行指针向量存储结构

2)输出每个非零元素值

3)转置并输出

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-8

课程名__ 数据结构 实验名称 广义表的存储结构及算法实现

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握广义表的存储结构

2、理解广义表操作实现的头文件(genlist.h)和其应用

3、理解广义表的递归结构及递归算法

二、实验内容

1、编写一个程序要求如下:

1)建立一个广义表存储结构

2)求此广义表长度

3)求此广义表深度

2、(选作)上述广义表输入用文件流的方式读入(提示要修改或另编一个create-2算法)。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-9

课程名__ 数据结构 实验名称 二叉树的存储结构及算法实现

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握二叉树的存储结构

2、理解二叉树操作实现的头文件(btree.h)和其应用

3、理解二叉树的递归结构及递归算法

二、实验内容

编写一个程序要求如下:

1)建立一棵二叉树的存储结构(数据类型为正整数)

2)按广义表形式输出

3)分别用前序、中序、后序遍历算法输出所有结点

4)求此二叉树深度

5)清除此二叉树

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-10

课程名__ 数据结构 实验名称 线索二叉树及应用

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握线索二叉树的存储结构

2、理解利用线索遍历二叉树的操作实现

二、实验内容

在实验-9的基础上,编写一个程序要求如下:

1)为一棵二叉树建立线索(数据类型为正整数)

2)利用线索遍历此二叉树

3)(选作)统计线索二叉树上的结点数

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-11

课程名__ 数据结构 实验名称 二叉排序树及应用

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握二叉排序树的定义、存储结构及原理

2、掌握二叉排序树的查找操作实现

3、理解二叉排序树的更新和删除操作实现

二、实验内容

编写一个程序要求如下:

1)建立一棵二叉排序树(数据类型为正整数)

2)按中序遍历输出此二叉排序树

3)在二叉排序树上进行查找操作

4)(选作)更新二叉排序树上的某个结点

5)(选作)删除二叉排序树上的某个结点

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-12

课程名__ 数据结构 实验名称 图及图的存储实现

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握图的三种存储结构

2、掌握图的存储的算法实现

二、实验内容

编写程序要求如下:

1、用P212的CREATE1()建立P217 图6-10的邻接矩阵;调用P218的dfs1求出此图的深度遍历结果。

2、用P214的CREATE2()建立P220 图6-12的邻接表;调用P221的bfs2求出此图的深度遍历结果。

3、用P216的CREATE3()建立P228 图6-17(a)的边集数组。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-13

课程名__ 数据结构 实验名称 图的最小生成树

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

掌握图的最小生成树的算法实现

二、实验内容

编写程序要求如下:

1、调用实验—12中的CREATE1()算法建立P226 图6-16(a)的邻接矩阵;用P225的Prim( )算法求出该图的最小生成树,并将此生成树的边集数组输出。

2、(可选)实验――12中的“用P216的CREATE3()建立P228 图6-17(a)的边集数组”,调用P228的Kruskal( )算法,求出此图的最小生成树。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-14

课程名__ 数据结构 实验名称 图的最短路径

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

掌握图的最短路径的算法实现

二、实验内容

编写程序要求如下:

1、调用实验—12中的CREATE1()算法建立P233 图6-19(a)的邻接矩阵;用P234的Dijkstra( )算法求出该图中从0顶点到其他各顶点的最短路径。

2、输出各条路径的路径长度和顶点序列。

3、(可选)调用P238的Floyed( )算法,求出上图的每个顶点到其他顶点的最短路径。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-15

课程名__ 数据结构 实验名称 图的拓扑排序和关键路径

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握图的拓扑排序的算法实现

2、掌握图的关键路径的算法实现

二、实验内容

编写程序要求如下:

1、调用实验—12中的CREATE2()算法建立P240图6-19(a)的邻接表;用P242的Toposort( )算法求出该图中从0顶点出发的拓扑排序结果。

2、调用实验—12中的CREATE2()算法建立P244图6-27邻接表;用P248的Cripath( )算法求出该图中从0顶点出发的关键路径结果。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

北京物资学院信息学院实验报告-16

课程名__ 数据结构 实验名称 查找和排序算法实验

实 验 日 期 年 月 日 实 验 报 告 日 期 年 月 日 实验小组成员名单:

姓 名_________学号_____________ 姓 名___________学号_____________ 姓 名__________学号_____________ 姓 名_________学号_____________ 姓 名_________学号_____________ 姓 名___________学号_____________ 报 告 退 发 ( 订正 、 重做 )

一、实验目的

1、掌握课程前期所学习过的所有查找算法的算法实现

2、掌握课程前期所学习过的所有排序算法的算法实现

3、理解第七章中的索引查找、散列查找方法

4、理解第八章中的希尔排序、堆排序方法

二、实验内容

编写程序要求如下:

1、将前期课程中学习过的各种数据结构中的查找算法中的任意一个进行单独的算法实现。

2、将前期课程中学习过的各种数据结构中的排序算法中的任意一个进行单独的算法实现。

3、(可选)可选索引查找或散列查找算法中的任意一个进行算法实现。

4、(可选)可选索引希尔算法或堆排序算法中的任意一个进行算法实现。

三、实验环境

南实验楼308、310

四、实验步骤

(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)

五、实验结果

(用链接的方式给出相关文件,并将相关文件制成压缩文件)

六、总结

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

相关推荐