线性表的反复查找问题

线性表的反复查找问题

ID:14918681

大小:53.00 KB

页数:4页

时间:2018-07-31

线性表的反复查找问题_第1页
线性表的反复查找问题_第2页
线性表的反复查找问题_第3页
线性表的反复查找问题_第4页
资源描述:

《线性表的反复查找问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《数据结构》实验报告一一、上机实验的问题:1、LIST_INIT_SIZE不被计算机程序所认可2、getchar()在程序中的作用,是否作用于运行结果中的“Pressanykeytocontiune”二、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)  基本思想和原理:利用线性表的顺序存储方式和求余运算符的运用,将1000次进洞逐一与线性表中的相应元素对应:先运用for语句将线性表中的所有元素赋值为0,再运用for语句达到随着狐狸进入次数的增加和进入的洞口的改变,改变线

2、性表中相应元素的值的目的(用0标记进入的洞口,用1表示未进入的洞口,并分别赋值给每一个洞口相对应的线性表元素)。利用for语句遍历整个线性表,利用if语句挑选出所需线性表元素,最后再利用printf函数输出结果。算法描述:StatusInitList_Sq(SqList&L){//构造一个空的线性表LL.elem=(ElemType*)malloc(LISTSIZE*sizeof(ElemType));if(!L.elem)return(OVERFLOW);//存储分配失败L.length=0;//空表长度为0L.l

3、istsize=LISTSIZE;//初始存储容量returnOK;}//InitList_SqStatusWhere(SqList&L){//构造狐狸逮兔子函数inti,j=1;//i为所找次数,j为所找的洞口号,先初始所找洞口号为1for(j=1;j<=LISTSIZE;j++)L.elem[j]=0;//记未进入的洞为0,进入的洞为1,初始所有洞口为0L.elem[1]=1;//第一次进入洞口号为1for(i=2;i<=1000;i++){j=(j+i)%LISTSIZE;//第i次进入的洞口号L.elem[j

4、]=1;//标记进入的洞口为1}//第二次隔一个洞找,第三次隔两个洞找,以此类推,经过1000次printf("兔子可能的藏身洞口有:");for(j=1;j<=LISTSIZE;j++)if((*L).elem[j]==0)printf("第%d号洞",j);//实现结果的输出returnOK;} 三、源程序及注释:#include#include#defineOK1#defineOVERFLOW0typedefintStatus;typedefintElemType;

5、#defineLISTSIZE10//线性表存储空间的初始分配量typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储空间(以sizeof(ElemType)为单位)}SqList;StatusInitList_Sq(SqList*L){//构造一个空的线性表L(*L).elem=(ElemType*)malloc(LISTSIZE*sizeof(ElemType));if(!(*L).elem)return(OVERFLOW

6、);//存储分配失败(*L).length=0;//空表长度为0(*L).listsize=LISTSIZE;//初始存储容量returnOK;}//InitList_SqStatusWhere(SqList*L){//构造狐狸逮兔子函数inti,j=1;//i为所找次数,j为所找的洞口号,先初始所找洞口号为1for(j=1;j<=LISTSIZE;j++)(*L).elem[j]=0;//记未进入的洞为0,进入的洞为1,初始所有洞口为0(*L).elem[1]=1;//第一次进入洞口号为1for(i=2;i<=10

7、00;i++){j=(j+i)%LISTSIZE;//第i次进入的洞口号(*L).elem[j]=1;//标记进入的洞口为1}//第二次隔一个洞找,第三次隔两个洞找,以此类推,经过1000次printf("兔子可能的藏身洞口有:");for(j=1;j<=LISTSIZE;j++)if((*L).elem[j]==0)printf("第%d号洞",j);//实现结果的输出returnOK;}voidmain(){SqListL;InitList_Sq(&L);Where(&L);} 四、运行输出结果: 五、调

8、试和运行程序过程中产生的问题及采取的措施:1、产生的问题:将算法直接运用于C程序语言中,导致在调试时没错,运行时出错。  采取的措施:按照C语言的代码规则,将算法中的不符合C语言编程的代码进行修改,如:StatusInitList_Sq(SqList&L)修改为StatusInitList_Sq(SqList*L),将L.elem【】修改为(*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。