数据结构与算法——实验1:单链表的就地反转

《数据结构与算法》实验一报告

一、目的和要求(需求分析)

1、掌握数据的链式存储结构以及链表的建立和操作

2、利用链表的原空间进行链表的反转;

设计一个将输入数据建立成链表、并依次输出链表数据、利用原空间把链表反转的程序。

二、程序设计的基本思想,原理和算法描述

(包括程序的结构,数据结构,输入/输出设计,符号名说明等)

1. 建立一个带有头结点的空链表。

2. 输入链表中元素的个数。

3. 创建新结点,利用尾插法将新结点插入到链表尾部。

4. 利用for循环语句完成链表元素的输入。

5. 依次输出单链表的结点值。

6. 就地反转。

 7. 依次输出反转后的单链表的结点值。

8. 销毁链表。

三、调试和运行程序过程中产生的问题及采取的措施

1. 产生问题:刚开始不知道如何建立一个链表。

  采取措施:通过看老师的ppt、查阅相关书籍以及网上的资料,学习了头插法和尾插法创建链表。

2. 产生问题:起先将头结点作为局部变量,代码运行不了。

  采取措施:① 自己采取了将头结点变成全局变量的方法。

                    ② 在询问老师后知道了还可以返回头结点供后续操作使用的方法。

3. 产生问题:刚开始没有就地反转的思路。

  采取措施:① 通过画图理思路。在草稿纸上模拟一遍链表反转,用不同颜色的笔标注出反转的各个步骤,使思路更加明了。

            ② 通过老师上机课前的讲解和学习ppt,使思路更加清晰。

4. 产生问题:没有考虑到销毁链表。

  采取措施:通过查找资料学习了销毁链表。

四、源程序及注释

 

 

五、运行输出结果(截图与必要的文字说明)

六、心得与体会

        通过这次实验,我掌握了链表的相关操作,比如:头插法尾插法创建链表、就地反转、销毁链表等等。同时,我明白了画图理思路的重要性,对链表进行操作时可以先在草稿纸上画图,通过画图模拟一遍指针的移动,对我们完成程序有事半功倍的效果。并且,我也认识到“纸上得来终觉浅”,不能光听老师上理论课,还要多实践多操作。最重要的是,我知道了借助资料、书籍、网络的重要性。

 

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阮阮的阮阮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值