




如果您无法下载资料,请参考说明:
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

哲妍****彩妍
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf