《数据结构》实验教学大纲文档格式.docx

上传人:b****1 文档编号:5566081 上传时间:2023-05-05 格式:DOCX 页数:17 大小:19.46KB
下载 相关 举报
《数据结构》实验教学大纲文档格式.docx_第1页
第1页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第2页
第2页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第3页
第3页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第4页
第4页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第5页
第5页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第6页
第6页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第7页
第7页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第8页
第8页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第9页
第9页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第10页
第10页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第11页
第11页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第12页
第12页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第13页
第13页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第14页
第14页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第15页
第15页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第16页
第16页 / 共17页
《数据结构》实验教学大纲文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《数据结构》实验教学大纲文档格式.docx

《《数据结构》实验教学大纲文档格式.docx》由会员分享,可在线阅读,更多相关《《数据结构》实验教学大纲文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

《数据结构》实验教学大纲文档格式.docx

顺序与链式的进栈,出栈

队列的基本运算

顺序与链式的入队,出队

5

串基本操作

串的运算与模式匹配

6

数组

三元组的转置

7

二叉树基本算法

二叉树的遍历

8

图的存储及遍历

图的邻接矩阵和邻接表存储

9

查找

顺序查找、折半查找、分块查找

10

排序算法

插入、选择、冒泡等排序

希尔排序、快速排序

实验一顺序表的基本算法

(一)实验目的

1.理解和掌握顺序表的结构类型定义方法;

2.掌握建立、显示、插入、删除、查找、拆分、合并顺序表的基本方法。

(二)基本知识与预习

1.C程序编辑、编译和运行的过程;

2.结构类型定义方法和成员的引用。

(三)实验环境

安装DEVC++的计算机

(四)实验内容

1.理解和掌握顺序表的结构类型定义方法及应用

/*插入算法描述

(一)*/

voidInsert(SqlistV,inti,Datatypex)

{intj;

if(i<

1||i>

V.last)printf("

infeasibleposition!

\n"

);

else{if(V.last+1>

maxsize)printf("

overflow!

\n"

else{for(j=V.last;

j>

=i;

j--)

V.elem[j+1]=V.elem[j];

V.elem[i]=x;

V.last++;

}

}

/*删除算法描述

(一)*/

voidDelete(SqlistV,inti)

1||i>

infeasible\n"

else{for(j=i;

j<

V.last;

j++)

V.elem[j]=V.elem[j+1];

V.last--;

1.掌握建立、显示、插入、删除、查找、拆分、合并顺序表的多种实现方法。

/*插入算法描述

(二)*/

intsq_insert(list,p_n,i,x)

intlist[],x,i,*p_n;

{intj;

if(i<

0||i>

*p_n)return

(1);

if(*p_n==maxsize)return

(2);

for(j=*p_n;

j>

i;

j--)

list[j]=list[j-1];

list[i]=x;

(*p_n)++;

return(0);

/*删除算法描述

(二)*/

intsq_delete(list,p_n,i)

intlist[],*p_n,i;

=*p_n)return

(1);

for(j=i+1;

j<

*p_n;

j++)

list[j-1]=list[j];

(*p_n)--;

return(0);

实验二链表的基本运算

1.理解和掌握链表的结构类型定义方法;

2.掌握建立、显示、插入、删除、查找、拆分、合并链表的基本方法。

1.指针的定义和使用;

2.开辟和释放存储空间的函数及其使用;

3.单链表的建立和删除。

1.单链表的插入算法。

/*算法描述*/

voidInsetLList(LlistL,inti,Datatypex)

{Llistp,s;

intj=0;

p=L;

while(p!

=NULL&

&

i-1){p=p->

next;

j++;

if(p==NULL||j>

i-1)printf(“Nothisposition!

\n”);

else{s=(Llist)malloc(sizeof(Node));

s->

data=x;

next=p->

p->

next=s;

2.单链表的删除算法。

/*算法描述2.3*/

voidDelete(LListL,inti)

{LListp,q;

p=L;

while(p!

if(p==NULL||j>

i-1)printf("

Nothisdata!

else{q=p->

next=p->

next->

free(q);

实验三栈的基本运算

1.掌握顺序栈和链式栈的类型定义方法。

2.掌握在顺序栈和链式栈上实现的基本算法。

1.栈的定义及基本术语;

2.栈的基本运算。

1.进栈算法

/*入栈算法*/

intpush(intx)

{if(top>

=MAXN)

return1;

stack[top]=x;

top++;

return0;

2.出栈算法

/*出栈算法*/

Intpop(int*p_y)

{if(top==0)

top--;

*p_y=stack[top];

实验四队列的基本运算

1.掌握顺序队列和链式队列的类型定义方法。

2.掌握在顺序队列和链式队列上实现的基本算法。

1.队列的定义及基本术语

2.队列的基本运算

1.进队列算法

/*入队算法*/

inten_queue(charx)

{if(tail==MAXN-1)

q[++tail]=x;

2.出队列算法

/*出队算法*/

Intde_queue(char*p_y)

{if(head==tail)

*p_y=q[++head];

实验五串基本操作演示系统

1.掌握串的表示和实现;

2.掌握串的基本算法;

3.对比两种模式匹配算法,分析各算法的时、空性能;

4.综合设计和实现串的替换算法。

1.掌握串的定义和表示方法;

2.掌握串的基本运算。

1.通过两个例题理解串函数的功能

例1:

s=′good′,t=′Iamastudent′,

1)strcat(s,t)

2)strsub(t,8,7)

3)strlen(t)

4)strstr(t,′a′)

5)strins(t,8,s)

例2:

a=′IAMASTUDENT′

b=′GOOD′

c=′MORNING′

d=′STU′e=′A′

1)strcat(b,c),strcat(b,a)

2)strsub(a,6,9)

3)strstr(a,d),strstr(a,e),strstr(c,e)

4)s=strsub(a,1,7),t=strsub(a,8,8),

strcat(s,b),strcat(s,t)

2.匹配算法实现:

intindex(chart[],charp[],intm,intn)

{intI,j,k;

for(i=0;

i<

=n-m;

i++)

{for(j=0,k=I;

m&

t[k]==p[j];

k++,j++);

if(j==m)return(i);

return(-1);

实验六数组

1.掌握数组的表示和实现;

2.掌握特殊矩阵的压缩存储;

3.掌握广义表的定义和基本运算。

1.数据的定义和表示方法;

2.结构数组的定义和引用;

3.广义表的定义和基本运算。

1.稀疏矩阵的压缩存储---三元组顺序表的实现。

2.稀疏矩阵的转置运算。

3.广义表的的基本运算。

实验七二叉树基本算法

1.综合设计和实现二叉树的创建、遍历、求高度、统计结点数目等基本算法,掌握树结构的处理方法;

2.了解哈夫曼特性,验证哈夫曼算法。

1.掌握二叉树的定义及基本术语;

2.掌握二叉树的创建、遍历、求高度、统计结点数目等基本算法。

(四)实验内容

1.二叉树的先序遍历算法

voidpreorder(JD*bt)

{if(bt!

=NULL)

{printf("

%d\t"

bt->

data);

preorder(bt->

lchild);

rchild);

}

2.二叉树的中序遍历算法

voidmidorder(JD*bt)

{midorder(bt->

printf("

midorder(bt->

3.二叉树的后序遍历算法

voidposorder(JD*bt)

{posorder(bt->

posorder(bt->

printf("

实验八图的存储及遍历

1.熟悉图的常用存储结构和基本操作,分别用邻接矩阵和邻接表实现以下操作:

图的创建、遍历、插入、删除;

2.综合设计和实现图的最短路径算法,理解图的具体应用。

1.掌握图的定义、基本术语及存储方式;

2.掌握图的创建、遍历等基本算法。

1.分别用邻接矩阵和邻接表实现图的创建、遍历;

2.实现图的最短路径算法,理解图的具体应用。

实验九查找

1.分别实现顺序查找、折半查找、分块查找的算法;

2.掌握常用查找算法的特点,以便根据实际情况选择使用。

1.对比顺序查找、折半查找、分块查找的思想和算法。

2.掌握常用查找算法的特点

1.顺序查找的算法

intfun(inta[],intn,intx)

{

inti;

for(i=0;

n;

该点是%d\n"

a[i]);

if(a[i]==x){puts("

找到\n"

return(i);

}//查找到,返回位置

if(i==n)return(-1);

//没有找到,返回-1

2.折半查找的算法

intSearch_Bin(SSTable*ST,intnumber)

intlow=1,high=ST->

length;

intmid;

while(low<

=high)

mid=(low+high)/2;

if(EQ(ST->

elem[mid].number,number))

returnmid;

elseif(LT(number,ST->

elem[mid].number))

high=mid-1;

else

low=mid+1;

return0;

3.分块查找的算法

intblksearch(sqlistr,indexidx,find=0,hb;

)//bn为块个数//

{inti,;

low=1,high1=bn,midl,find=0,hb;

while(low1<

=high1&

!

find)

{mid=(low1+high1)/2;

if(k<

idx[mid1].key)high1=mid-1;

elseif(k>

idx[mid1],key)low1=mid1+1;

else{

low=mid1;

find=1;

if(low1<

bn)//k小于索引表最大值//

{i=idx[low1].low;

hb=idx[low1].high;

while(i<

hb&

r[i].key!

=k)i++;

if(r[i].key!

=k)i=0;

return(i);

实验十排序算法

3.分别实现直接插入排序、冒泡排序、简单选择排序,并随机生成30个数,比较各算法的时、空性能和稳定性。

4.掌握常用排序算法的特点,以便根据实际情况选择使用。

3.对比直接插入排序、冒泡排序、简单选择排序、希尔排序、快速排序,并比较各算法的时、空性能及稳定性。

4.掌握常用排序算法的特点

3.直接插入排序算法

voidinsertion_sort(a,n)

inta[],n;

{inti,j,t;

for(i=1;

{t=a[i];

for(j=i-1;

=0&

t<

a[j];

j--)

a[j+1]=a[j];

a[j+1]=t;

冒泡排序算法

voidbubble_sort(a,n)

{inti,j,t;

n--;

while(n>

0)

{j=0;

if(a[i]>

a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;

j=i;

n=j;

4.简单选择排序算法

voidselecttion_sort(a,n)

{inti,j,k,t;

{k=i;

if(a[k]>

a[j])

k=j;

t=a[i];

a[i]=a[k];

a[k]=t;

}}

四、考核方式

期末课程

总评成绩构成

考核目标

考核内容

考核方式与考核次数

平时考核

100(20%)

学习态度

出勤情况

考核出勤

阶段考核成绩

100(50%)

理论应用

实际能力

综合能力

教学重点、难点

实验报告4-5份

结课考核成绩

100(30%)

学习诚信

知识掌握

实践能力

创新能力

覆盖全部教学内容

机考1次

五、实验教科书、参考书

1.教研组自编,数据结构实验指导与实验报告;

2.徐健,曾玉华主编,数据结构上机指导与习题解析,南京大学出版社,2007年。

3.汪沁、奚李峰主编,数据结构教程,清华大学出版社.

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

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2