教材:电子信息技术专业实验指导书的第2章:
数据结构实验。
本实验课学分:0.5
上课周次:10周- 17周(各个班不同,13)
成绩评定:随课实验,成绩不单独给,但会体现在数据结构与算法分析课程的成绩中,课程总3.5学分,理论课程3学分,实验0.
教材:电子信息技术专业实验指导书的第2章:
数据结构实验。
本实验课学分:0.5
上课周次:10周- 17周(各个班不同,13)
成绩评定:随课实验,成绩不单独给,但会体现在数据结构与算法分析课程的成绩中,课程总3.5学分,理论课程3学分,实验0.
教材:电子信息技术专业实验指导书的第2章:
数据结构实验。
本实验课学分:0.5
上课周次:10周- 17周(各个班不同,13)
成绩评定:随课实验,成绩不单独给,但会体现在数据结构与算法分析课程的成绩中,课程总3.5学分,理论课程3学分,实验0.
5学分。实验成绩体现在:1.
实验程序完成之后的检查。2.实验报告(格式,每人按时交,16周交完报告)。
3.随堂测试(13周-15周,时间不定)。
课程使用编程语言:visual c++或tc,需要同学们自己再重温一下c语言课本,特别要注意函数调用、指针、结构体部分的内容。
实验一线性顺序表的插入删除(8课时)-教材实验1
实验目的:学习线性顺序表的建立与各个操作以及编程语言的熟练掌握。
实验内容:一、 线性顺序表1:
函数调用方式实现建立线性表及线性表的各项功能。
typedef struct list
et alist[maxsize];
int size;
;//一旦定义一个struct list这样的数据结构名称与类型,那么在你的程序里,struct list就象int 一样的意义了。
typedef char et;//定义一个宏,用et代表数据类型char ,这样若要改变数据类型,只需改动这一个地方就可以了。
实现七个函数:
1)置空表:void setnull(struct list *p)
2) 求长度:int length(struct list *p)
3)取表中第i个结点:et get (struct list *p,int i)
4)按值查找:int locate(struct list *p,et x)
5)插入结点:void insert(struct list *p,int i,et x)
6)删除结点:void delete(struct list *p,int i)
7)显示链表:void display(struct list *p)
这样可以直接调用这七个函数来实现顺序表的操作,如实现在屏幕上显示如下内容:(就是说,每个动作都应该在屏幕上有提示)
我的顺序表为:d-> e->a->c->a->b
值为a在表中的位置为:3
位置4的值为:c
删除第二个结点后顺序表:d-> a->c->a->b
删除第二个结点后顺序表:d-> c->a->b
删除第1个结点后顺序表: c->a->b
删除第1个结点后顺序表: a->b
实验二线性链表(8课时)-教材实验2
实验目的:学习线性链表的数据结构与算法实现,继续学习编程,重点掌握单链表、循环单链表的数据结构的建立与各种操作的实现,学习双链表的建立方法。
实验内容:一、 链表的建立与操作1:
和实验一中的线性顺序表的同样方法,用函数调用方式实现建立线性链表及线性链表的各项功能。
链表的数据格式:
struct snode
et data;
struct snode *next;
定义链表的每一个结点:struct snode *s;
struct snode *s,*q;
s=(struct snode *)malloc(sizeof(struct snode));
s->data=x;
q->next=s;
实现七个函数:
1)置空表:void setnull(struct snode **p)
2) 求长度:int length(struct snode **p)
3)取表中第i个结点:et get (struct snode **p,int i)
4)按值查找:int locate(struct snode **p,et x)
5)插入结点:void insert(struct snode **p,int i,et x)
void insert(struct snode **p,et x,int i)
int j=1;
struct snode *s,*q;
s=(struct snode *)malloc(sizeof(struct snode));
s->data=x;
q=*p;if(i==1)
s->next=q;*p=s;}
elsewhile(jnext!=null)
if(j==i-1)
printf("not exist!")
6)删除结点:void delete(struct snode **p,int i)
7)显示链表:void display(struct snode **p)
这样可以直接调用这七个函数来实现链表的操作,如同线性顺序表的d-> e->a->c->a->b一样。
实验三求解迷宫问题(8课时)――教材实验3
一、实验目的:
巩固队列、栈的数据结构形式,掌握其在程序设计中的具体应用;通过迷宫问题的分析,进一步了解程序设计的基本方法,提高解决实际问题的能力。
二、实验内容:耗子走迷宫的古典问题,要求用队列的存储方式、堆栈的存储方式分别实现程序。
首先,用二维数组来表示迷宫,其元素值只有两个。
入口。出口。
几个问题:1、二维迷宫数组的初始化mg[m][n]
2、迷宫中的每个位置(i,j)有8个方向可走,我们要约定每次先走哪个方向,这样程序才有章可循。边缘位置只有3个方向,这样我们给迷宫周围增加一圈围墙,即迷宫数组扩充为mg[m+1][n+1],且边缘全部为1。
3、不同方向对应有不同的坐标变换值,如对(i,j)这个位置来说,有8个方向,定义一个变量v=1~8,对应i=i+zx[v],j=j+zy[v],这样,事先将每个方向上的横坐标、纵坐标增量zx,zy分别用数组给出即可。
4、问题的关键在:如何在走不通的情况下回过头来重新寻找其他方向?队列、栈的存储结构?需要存储哪些数据?
算法与数据结构实验
实验1 adt list 线性表 6学时 问题描述 线性表是典型的线性结构,实现adt list,并在此基础上实现两个集合的交运算和并运算。实验目的 1 掌握线性表的链表存储结构。2 掌握在单链表上基本操作的实现。3 在掌握单链表的基本操作上进行综合题的实现。实验内容及要求 1 要求用带头结点的单链...
算法与数据结构实验
福建农林大学实验报告。系 教研室 计算机专业年级实验课程。姓名学号实验室号计算机号。实验时间指导教师签字成绩。实验四实现fibonacci检索算法 验证性 4学时 一 实验目的和要求。掌握不同的检索方法,并能用高级语言实现检索算法 熟练掌握顺序表和有序表的检索方法,以及静态检索树的构造方法和检索算法...
数据结构与算法实验
计算机科学与技术系。实验报告。专业名称网络系统管理 课程名称数据结构与算法 项目名称堆栈实验 班级 13网络系统管理 学号 1304052010 姓名汪康。同组人员。实验日期。一 实验目的与要求 1 掌握堆栈的两种不同的存储结构。2 掌握应用堆栈表示数据 并进行有关算法设计的方法。二 实验背景 堆栈...