您所在位置: 网站首页 / 数据结构实验课教案精编.docx / 文档详情
数据结构实验课教案精编.docx 立即下载
2025-08-27
约6.8万字
约109页
0
55KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构实验课教案精编.docx

数据结构实验课教案精编.docx

预览

免费试读已结束,剩余 104 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构实验课教案

第一篇:数据结构实验课教案数据结构教案实验一:线性表的顺序表示与实现实验学时:2学时一.实验目的:1.掌握线性表的顺序存储结构;2.掌握在顺序表上进行的插入、删除、查找、修改等操作。二.实验内容:1.分别建立顺序表,并输入初始数据;2.对顺序表分别编写插入、删除、查找、修改等函数。三.实验重点:顺序表的建立及操作。四.实验要求:1.用C语言编写程序源代码;2.要分别完成建立、插入、删除、查找、修改五种功能。3.源程序必须编译调试成功,独立完成。五.实验器材:一个装有C语言编译环境的计算机。六.实验步骤:顺序表:1.定义头文件和顺序表的存储结构类型等#defineok1#defineerror0#defineoverflow0#definenull0#include#include#definelist_init_size100#definelistincrement10typedefintelemtype;typedefintstatus;typedefstruct{elemtype*elem;intlength;intlistsize;}sqlist;2.编写构造空顺序表的函数statuslistinit(sqlist*l){l->elem=(elemtype*)malloc(list_init_size*sizeof(elemtype));if(!l->elem)returnoverflow;l->length=0;l->listsize=list_init_size;returnok;}3.编写对顺序表进行插入操作的函数:statuslistinsert(sqlist*l,inti,elemtypee){elemtype*newbase,*q,*p;if(ilistlength(*l)+1)returnerror;if(l->length==l->listsize){newbase=(elemtype*)realloc(l->elem,(l->listsize+listincrement)*sizeof(elemtype));if(!newbase)returnoverflow;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;}4.编写对顺序表进行删除操作的函数:statuslistdelete(sqlist*l,inti,elemtype*e){elemtype*p,*q;if(il->length)returnerror;p=&(l->elem[i-1]);*e=*p;q=l->elem+l->length-1;for(++p;p*(p-1)=*p;--l->length;returnok;}5.编写对顺序表进行查找操作的函数:statusgetelem(sqlistl,inti,elemtype*e){if(ilistlength(l))returnerror;*e=l.elem[i-1];returnok;}6.编写对顺序表进行修改操作的函数:statuslocateelem(sqlistl,elemtypee){inti;for(i=0;iif(l.elem[i]==e)returni+1;return0;}7.编写实现两个线性表的归并操作的函数voidmergelist(sqlistla,sqlistlb,sqlist*lc){inti,j,k;intla_len,lb_len;elemtypeai,bj;i=j=1;k=0;listinit(lc);la_len=listlength(la);lb_len=listlength(lb);while(i{listinsert(lc,++k,ai);++i;}else{listinsert(lc,++k,bj);++j;}}while(iwhile(j{getelem(lb,j++,&bj);listinsert(lc,++k,bj);}}8.销毁线性表、清空线性表、判空、求表长等statusdestroylist(sqlist*l){if(l->elem)free(l->elem),l->elem=null;returnok;}statusclearlist(sqlist*l){l->length=0;returnok;}statuslistempty(sqlistl){return(l.length==0);}statuslistlength(sqlistl){returnl.length;}9.打印线性表voidprint(sqlistl){i
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

数据结构实验课教案精编

文档大小:55KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用