预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共76页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

数据结构试验教案实验简介实验环境实验教材试验一、线性结构基本算法实现次序表创建和输出:数据结构试验教学课件次序表删除操作:单链表创建和输出:单链表合并:单链表合并:数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件试验二栈与队列应用数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件数据结构试验教学课件试验三串试验三串试验四数组#defineMAXSIZE12500typedefstruct{inti,j;//该非零元行下标和列下标ElemTypee;//该非零元值}Triple;//三元组类型StatusFastTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){for(col=1;col<=M.nu;++col)num[col]=0;for(t=1;t<=M.tu;++t)++num[M.data[t].j];cpot[1]=1;for(col=2;col<=M.nu;++col)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=M.tu;++p){}}//ifreturnOK;}//FastTransposeSMatrixCol=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col]试验五树与二叉树ABCDStatusCreateBiTree(BiTree&T){scanf(&ch);if(ch=='')T=NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);T->data=ch;//生成根结点CreateBiTree(T->lchild);//结构左子树CreateBiTree(T->rchild);//结构右子树}returnOK;}//CreateBiTree三、算法递归描述voidInorder_I(BiTreeT,void(*visit)(TelemType&e)){InitStackS;p=T;while(p||!StackEmpty(S)){if(p){Push(S,p);p=p->lhild;}else{Pop(S,p);if(!Visit(p->data))returnERROR;p=p->rhild;}//else}//WhileReturnOK;}voidCountLeaf(BiTreeT,int&count){if(T){if((!T->lchild)&&(!T->rchild))count++;//对叶子结点计数CountLeaf(T->lchild,count);CountLeaf(T->rchild,count);}//if}//CountLeafintDepth(BiTreeT){//返回二叉树深度if(!T)depthval=0;else{depthLeft=Depth(T->lchild);depthRight=Depth(T->rchild);depthval=1+(depthLeft>depthRight?depthLeft:depthRight);}returndepthval;}试验四图基本实现与应用试验四查找与排序ST.elemintSearch_Seq(SSTableST,KeyTypekey){//在次序表ST中次序查找其关键字等于//key数据元素。若找到,则函数值为//该元素在表中位置,不然为0。ST.elem[0].key=key;//“哨兵”for(i=ST.length;ST.elem[i].key!=key;--i);//从后往前找returni;//找不到时,i为0}//Search_SeqST.elemintSearch_Bin(SSTableST,KeyTypekey){low=1;high=ST.length;//置区间初值while(low<=high){mid=(low+high)/2;if(EQ(key,ST.elem[mid].key))returnmid;//找到待查元素elseif(LT(key,ST.elem[mid].key))high=mid-1;//继续在前半区间进行查找elselow=mid+1;//继续在后半区间进行查找}return0;//次序表中不存在待查元素}//Search_Bin