数据结构实验指导09级Word文件下载.docx

上传人:b****2 文档编号:14999479 上传时间:2022-10-26 格式:DOCX 页数:12 大小:18.74KB
下载 相关 举报
数据结构实验指导09级Word文件下载.docx_第1页
第1页 / 共12页
数据结构实验指导09级Word文件下载.docx_第2页
第2页 / 共12页
数据结构实验指导09级Word文件下载.docx_第3页
第3页 / 共12页
数据结构实验指导09级Word文件下载.docx_第4页
第4页 / 共12页
数据结构实验指导09级Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构实验指导09级Word文件下载.docx

《数据结构实验指导09级Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构实验指导09级Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构实验指导09级Word文件下载.docx

StatusListInsert_Sq(SqList&

L,inti,ElemTypee){

//在顺序表L的第i个元素之前插入新的元素e

if(i<

1||i>

L.length+1)returnERROR;

if(L.length>

=L.listsize){

newbase=(ElemType*)realloc(L.elem,

(L.listsize+LISTINCREMENT)*sizeof(ElemType));

if(!

newbase)exit(OVERFLOW);

L.elem=newbase;

L.listsize+=LISTINCREMENT;

q=&

(L.elem[i-1]);

for(p=&

(L.elem[L.length-1]);

p>

=q;

--p)

*(p+1)=*p;

*q=e;

++L.length;

returnOK;

}

StatusListDelete_Sq(SqList&

L,inti,ElemType&

e){//删除算法

if((i<

1)||(i>

L.length))returnERROR;

p=&

e=*p;

q=L.elem+L.length-1;

for(++p;

p<

++p)*(p-1)=*p;

--L.length;

intlocate_sq(SqListL,elemtypex)//查找算法

{for(i=0;

i<

L.length;

i++)

If(L.elem[i]==x)returni+1;

return0;

}

4.根据上面设计的算法,用C/C++语言实现,调试通过并输出正确的结果。

实验二线性表的链式表示与实现

(1)掌握线性表的链接存储结构;

(2)验证单链表及其基本操作的实现;

(3)进一步掌握数据结构及算法的程序实现的基本方法。

(1)用头插法和尾插法建立含有若干个元素的带头结点的单链表;

(2)对已经建立的单链表实现插入、删除、查找等基本操作。

3.实现算法…

实验三、四栈与队列及其应用

(1)掌握栈的顺序存储结构和队列的链式存储结构;

(2)掌握栈和队列的操作特性;

(3)掌握基于顺序栈和链队列的基本操作的实现方法。

(1)建立一个空栈;

(2)对已经建立的栈实现入栈、出栈、取栈顶元素等基本操作。

(3)建立一个空队列;

(4)对已经建立的队列实现插入、删除等基本操作

实验五二叉树的应用

(1)掌握二叉树的逻辑结构;

(2)掌握二叉树的二叉链表存储结构;

(3)掌握基于二叉链表存储的二叉树的遍历操作的实现。

(1)建立一棵含有n个结点的二叉树;

(2)前序(或中序、后序)遍历该二叉树;

(3)求该树叶子结点个数。

实验六图的遍历与应用

(1)掌握图的逻辑结构;

(2)掌握图的邻接矩阵存储结构和邻接表存储结构;

(3)掌握图的邻接矩阵存储结构和邻接表存储结构下遍历算法的实现。

(1)建立无向图的邻接矩阵存储;

(2)对已经建立的无向图进行深度优先和广度优先遍历操作。

(3)建立有向图的邻接表存储;

(4)对已经建立的有向图进行深度优先和广度优先遍历操作。

实验七查找技术

(1)掌握顺序查找和折半查找算法的基本思想;

(2)掌握顺序查找和折半查找算法的实现方法;

(3)掌握顺序查找和折半查找算法的时间性能。

对给定的长度为n的数组,分别使用顺序查找、折半查找查找数组中与给定值k相等的元素。

实验八内部排序

(1)掌握直接插入排序、冒泡排序和简单选择排序的基本思想;

(2)掌握直接插入排序、冒泡排序和简单选择排序的实现方法;

(3)掌握快速排序的基本思想和实现方法。

对一组数据进行直接插入排序、冒泡排序、简单选择排序和快速排序。

(升序)

 

附录一:

山东理工大学实验教学授课计划表

附录二:

实验一的源代码

10~11学年第1学期

开课实验室名称

计算机中心实验室

课程名称

数据结构

课程代码

052054

开课时间

2010.9

总实验学时

16

课程类别

主讲教师

肖爱梅

院(部)

计算机科学与技术

课程性质

专业基础课

开课班级

计科09

实验人数

及实验者类别

本科

序号

实验项

目名称

实验

类别

要求

类型

实验计划时间(到周节)

备注

1

线性表的顺序表示和实现

2

专业

必选

设计

第三周周二7-8节

线性表的链式表示和实现

第四周周二7-8节

3

栈的实现及其应用

第六周周六3-4节

4

队列的实现及其应用

第八周周六3-4节

5

二叉树及其应用

第十周周二7-8节

6

图及其应用

第十二周周二7-8节

7

查找技术

第十四周周二7-8节

8

内部排序

第十五周周二7-8节

9

10

11

12

13

14

15

教学部主任:

院(部)分管领导:

注:

1本表由任课教师填写,课程所在院(部)统一于每学期第一周报送实验室,跨院部的另报实验室管理科一份。

本表留存实验室;

2实验类别:

基础/技术(或专业)基础/专业/其他(含毕业论文和毕业设计的实验);

3实验类型:

验证/创新/综合/设计/研究/演示;

4实验要求:

必修/选修;

4备注:

改进/新开。

4.实验要求:

必修/选修。

5.备注:

C语言实现:

#include<

stdio.h>

conio.h>

stdlib.h>

#defineOK1

#defineERROR0

#defineOVERFLOW0

#defineLIST_INIT_SIZE100

#defineLISTINCREMENT10

typedefintStatus;

typedefstruct

{int*elem;

intlength;

intlistsize;

}SqList;

intInitList_Sq(SqList*L)

{(*L).elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));

if(!

(*L).elem)

exit(OVERFLOW);

(*L).length=0;

(*L).listsize=LIST_INIT_SIZE;

returnOK;

}//创建顺序表

intCreateList_Sq(SqList*L)

{inti;

cout<

<

"

请输入数据:

;

for(i=0;

(*L).length;

scanf("

%d"

&

(*L).elem[i]);

}//顺序表赋值

Statuslistinsert_sq(SqList*L,inti,inte)

{int*q,*p,*newbase;

if(i<

1||i>

(*L).length+1)returnERROR;

if((*L).length>

=(*L).listsize)

{newbase=(int*)realloc((*L).elem,((*L).listsize+LISTINCREMENT)*

sizeof(int));

if(!

(*L).elem=newbase;

(*L).listsize+=LISTINCREMENT;

}

q=&

((*L).elem[i-1]);

for(p=&

((*L).elem[(*L).length-1]);

p>

=q;

--p)

*(p+1)=*p;

*q=e;

++(*L).length;

}//顺序表的插入

Statuslistdelete_sq(SqList*L,inti,int&

e)

{

int*p,*q;

(*L).length)returnERROR;

p=&

e=*p;

q=(*L).elem+(*L).length-1;

for(++p;

p<

++p)

*(p-1)=*p;

--(*L).length;

}//顺序表的删除

voidoutput(SqList*L)

{cout<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1