算法转换为程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{L->data[i]=x;i++;
if(i==MAXSIZE)printf(“表空间已经满了!!“);
elsescanf(“%d“,&x);
}
L->last=i-1;
}
/*顺序表中元素以a1为界重新排列*/
void part(SeqList *L)
{ int i,j;
datatype x,y;
x=L->data[0];
5.在体会中描述如下内容:
(1)图示按照你的测试数据建立的二叉排序树示意图。
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
实验四树
一、实验目的
1.熟悉树的存储结构;
2.熟悉二叉链表的创建;
3.熟悉二叉树的遍历操作。
二、实验内容
1.理解利用先序遍历实现二叉链表的创建的算法,理解二叉树的先序、中序和后序遍历;转换成程序并上机实现,并按要求撰写实验报告;
2.(选做)将内容1中二叉链表的创建改为“利用中序和后序创建二叉链表”,转换成程序并上机实现;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)图示按照你的测试数据建立的邻接表、邻接矩阵示意图。
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
4.(选做)实现表插入排序,转换为程序上机实现;
三、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
{datatype data[MAXSIZE];
int last;/*顺序表中最后一个元素的序号*/
}SeqList;
/*创建顺序表*/
void input(SeqList *L)
{int i,x;
i=0;
printf(“\n输入顺序表中的元素值,-1结束:“);
scanf(“%d“,&x);
while(x!=-1)
《算法与数据结构》课程实验指导
实验一算法转换为程序
一、实验目的
1.掌握如何将算法转换为程序;
2.熟悉顺序存储结构;
3.熟悉顺序表的操作;
4.熟悉顺序表的应用。
二、实验内容
1.理解题目“将顺序表(a1,a2,…,an)重新排列成以a1为界的两部分:a1之前的值均比a1小,a1后面的值都比a1大”的算法,理解下面实验步骤三(3),认真体会算法与程序的区别。
2.熟悉栈和队列的数据结构特征;
3.熟悉栈和队列的应用。
二、实验内容
1.理解“利用栈在迷宫中求一条路径”的算法,转换成程序并上机实现,并按要求撰写实验报告;
2.理解“利用队列在迷宫中找最短路径”的算法,转换成程序并上机实现;
3.(选做)利用栈进行中缀表达式的求值,转换成程序并上机实现;
4.(选做)利用栈将中缀表达式转换为后缀表达式,转换成程序并上机实现;
6.(选做)设计递归算法实现折半查找,转换成程序并上机实现。
三、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改Fra Baidu bibliotek填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)对算法与程序的区别上的体会。
(2)本次实验过程的体会,是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
(3)对本门课程的初步感觉,准备如何进行本门课程的学习。
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
intlast;/*顺序表中最后一个元素的序号*/
}SeqList;
2.根据实验内容的描述设计算法
void part(SeqList *L)
{ int i,j;
datatype x,y;
x=L->data[0];
for(i=1;i<=L->last;i++)
if(L->data[i]<x)
{y=L->data[i];
2.设计算法P43三(1),并转换为程序上机实现,按照要求撰写实验报告。
三、实验内容1的算法与程序示例
1.根据实验内容的描述设计数据结构
/*顺序表*/
#defineMAXSIZE 20
typedefint datatype;
typedef struct
{datatype data[MAXSIZE];
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
实验六二叉排序树
一、实验目的
1.熟悉二叉排序树的定义和有关操作。
2.熟悉对二叉排序树进行操作的递归算法。
二、实验内容
1.理解二叉排序树的插入的算法,理解二叉排序树的创建算法;转换成程序并上机实现(要求将创建的二叉排序树进行中序遍历进行验证),并按要求撰写实验报告;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)图示按照你的测试数据建立的二叉链表示意图,对应的先序、中序、后序线索树的示意图。
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
实验三栈和队列
一、实验目的
1.熟悉栈和队列的存储结构;
2.(选做)实现二叉树的层次遍历,转换成程序并上机实现;
3.(选做)实现先序、中序、后序线索树建立,转换成程序并上机实现;
4.(选做)实现二叉树遍历的非递归算法,转换成程序并上机实现;
三、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
实验二单链表
一、实验目的
1.熟悉单链表的存储结构;
2.熟悉单链表的操作;
3.熟悉单链表的应用。
二、实验内容
1.设计算法实现“已知带头结点的单链表L中的结点是按整数值递增排列,设计算法并实现将值为x的结点插入到表L中,使得L仍然有序。”将算法转换为程序上机实现,并按照要求撰写实验报告。
2.(选做)设计算法实现“两个已排序的单链表,合并成一个链表而不改变其排序性”,并转换成程序上机实现。
for(j=i-1;j>=0;j--)
L->data[j+1]=L->data[j];
L->data[0]=y;
}
}
3.将算法转化为程序(见dssy1.txt)
#include <stdio.h>
#define MAXSIZE 20
typedef int datatype;
typedef struct
5.在体会中描述如下内容:
(1)图示按照你的测试数据快速排序第一趟过程示意图,建立的堆示意图。
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
printf(“\n输出顺序表中的各个元素值:\n”);
for(i=0;i<=L->last;i++)
printf(“%d”,L->data[i]);
}
/*主函数*/
void main()
{SeqList *L;
L=(SeqList *)malloc(sizeof(SeqList));
input(L);
2.(选做)实现无向图邻接矩阵的创建,实现无向图邻接矩阵方式存储的深度优先遍历的算法,转换成程序并上机实现;
3.(选做)无向图邻接表存储方式的广度优先遍历,转换成程序并上机实现;
四、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
2.(选做)将内容1中二叉排序树的插入改为用递归算法设计,转换成程序并上机实现;
3.(选做)给定某个关键字值,用递归算法在已经创建好的二叉排序树查找该关键字值是否存在,如果存在,返回指向该结点的指针,否则返回空指针,转换成程序并上机实现;
5.(选做)设计算法实现二叉排序树的删除,转换成程序并上机实现;
part(L);
output(L);
getch();
}
四、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
实验五图
一、实验目的
1.熟悉图的存储结构;
2.熟悉图的创建操作;
3.熟悉图的遍历操作。
二、实验内容
1.理解实现无向图邻接表的创建的算法,理解实现无向图的深度优先遍历的算法;转换成程序并上机实现,并按要求撰写实验报告;
for(i=1;i<=L->last;i++)
if(L->data[i]<x)
{y=L->data[i];
for(j=i-1;j>=0;j--)
L->data[j+1]=L->data[j];
L->data[0]=y;
}
}
/*输出顺序表*/
void output(SeqList *L)
{int i;
5.(选做)利用栈进行后缀表达式求值,转换成程序并上机实现;
三、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)回答问题:什么样的问题可以利用栈和队列解决?
(2)本次实验过程的体会,实现了几个程序,各个程序的名字是什么?是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
三、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)单链表与顺序表区别的体会。
实验七排序
一、实验目的
1.熟悉排序的概念。
2.掌握排序的方法。
二、实验内容
(一)(必做)
1.理解快速排序算法,转换为程序上机实现,要求按照“(…)支点元素(…)”格式输出快速排序每一趟的结果。并按要求撰写实验报告。
2.理解堆排序,转换为程序上机实现;
3.(选做)实现链式基数排序,转换为程序上机实现;
相关文档
最新文档