实验03_单向链表

实验03_单向链表

ID:37677558

大小:152.25 KB

页数:15页

时间:2019-05-28

实验03_单向链表_第1页
实验03_单向链表_第2页
实验03_单向链表_第3页
实验03_单向链表_第4页
实验03_单向链表_第5页
资源描述:

《实验03_单向链表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验11指针进阶实验3单项链表【实验目的】1.掌握单向链表的概念和建立方法。2.掌握单向链表的基本操作。【实验内容】一.调试示例输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。(源程序error11_3.cpp)源程序(有错误的程序)1#include2#include3#include4structstud_node{5intnum;6charname[20];7intscore;8structstud_node*next;9};10intmain(void)11{1

2、2structstud_node*head,*tail,*p;13intnum,score;14charname[20];15intsize=sizeof(structstud_node);16head=tail=NULL;17printf("Inputnum,nameandscore:");18scanf("%d",&num);19/*建立单向链表*/20while(num!=0){21p=malloc(size);22scanf("%s%d",name,&score);14实验11指针进阶23p->num=num;24strcpy(p->name,name);25p->scor

3、e=score;26p->next=NULL;27tail->next=p;28tail=p;29scanf("%d",&num);30}31/*输出单向链表*/32for(p=head;p->next!=NULL;p=p->next)/*调试时设置断点*/33printf("%d%s%d",p->num,p->name,p->score);34return0;35}运行结果(改正后程序的运行结果):Inputnum,nameandscore:1zhang782wang803Li754zhao8501zhang782wang803Li754zhao851.编译后共有1errors,

4、鼠标双击第一个错误,观察源程序中箭头指向第21行,分析错误原因并改正:错误信息::errorC2440:'=':cannotconvertfrom'void*'to'structstud_node*';错误原因:动态申请要指定其类型;改正方法:在malloc前加上(structstud_node*);2.改正错误后重新编译、连接程序没有错误。运行程序,当输入完第一行数据按回车后,出现出错信息。错误信息:;错误原因:在建立链表时没有考虑初始状态链表是空的情况;改正方法:在第27行前插入语句:if(head==NULL){head=p;tail=p;}else;3.改正错误后重新编译、运行

5、程序,运行结果与预期不符之处为:少了一行;14实验11指针进阶4.调试步骤:(1)设置断点,具体位置见源程序的注释。(2)单击(go)按钮,输入题目中给出的运行数据,程序运行到断点,在观察窗口中输入head,单击head前面的加号,就可以看到链表第一个结点的内容,再单击next前面的加号,就可以看到链表第二个结点的内容,以此类推(如图1所示)。经查看,各元素值与输入的数据一致,说明链表建立正确。(3)继续单步运行,同时观察输出窗口的信息。发现当输出倒数第二个学生信息后for循环就结束了。错误原因:最后一个学生的信息输出不了;改正方法:32改for(p=head;p!=NULL;p=p-

6、>next);(4)单击(StopDebugging)按钮,结束程序调试。图1链表调试5.重新编译、连接、运行,运行结果与预期相符。思考:(1)为什么要用动态内存分配方式建立链表结点?省空间运算效率高(2)在链表结构中,next成员起什么作用?记录下一个结构体的位置二.改错题14实验11指针进阶输入若干个学生的学号(共7位,其中第2、3位是专业编号),以#作为输入结束标志,将其生成一个链表,统计链表中专业为计算机(编号为02)的学生人数。(源程序error11_4.cpp)输入输出示例102120220223108102134103091231102034021205#3源程序(有错误

7、的程序)1#include2#include3#include4structnode{5charcode[8];6structnode*next;7};8intmain(void)9{10structnode*head,*p;11inti,n,count;12charstr[8];13intsize=sizeof(structnode);14head=NULL;15gets(str);1

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

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

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