链表

一、PTA实验作业

题目1:7-11 单向链表3:编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入一个正整数 n(0<n<=9)和一组(n个)升序的整数,建立单向链表,再输入一个整数 x,把 x 插入到这组数据中,使该组数据仍然有序。

1. 本题PTA提交列表

 

2. 设计思路

主函数中输入repeat,做repeat次循环。每次循环都先输入该次循环数据的个数n,然后把这n个数据存储在链表中,最后输入待插入整数x,调用子函数fact(head,n,x)。子函数fact(head,n,x)分为三种情况:一,x<=链表的第一个数据,即头插法;二,x比链表里的所有数据都大,即尾插法;三,x位于链表中。分别有不同的处理方法。

3.本题调试过程碰到问题及PTA提交列表情况说明。

(1)格式错误:题目要求的输出格式是两个数据间有一个空格,行末不要空格。而我的输出是每个数据后面都带了一个空格。

4.代码截图。

题目二:7-12 单向链表4:定义单向链表:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序并输出。

 

1.本题PTA提交列表

2. 设计思路

在主函数中每记录一次数据就用一次头插法,这里的for循环以-1为标志结束,最后就变成倒序输入了,然后在输出时注意格式问题即可。

3.本题调试过程碰到问题及PTA提交列表情况说明。

(1)格式错误:与上题错误点一样。行末不能加空格。

4.代码截图。

题目三:7-13 单向链表5:定义单向链表struct Node并实现:输入若干个学生信息(包括学号、姓名和成绩),输入学号为0时输入结束,再输入一个成绩值,将成绩小于该值的学生信息删除,并将成绩大于等于该值的学生信息输出。

1.本题PTA提交列表

2. 设计思路

因为p->num=0是结束的标志,所以让动态分配后的初始化为-1。第一个for循环用于输入所有数据;第二个for循环用于删除分数比grade低的同学的信息,分为两部分:一,被删除点位于头结点,二,被删除点不是头结点;第三个for循环用于输出已删除后的链表。

3.本题调试过程碰到问题及PTA提交列表情况说明。

(1)答案错误:在第二个for循环中出现了逻辑上的错误,不能正确把握链表删除结点的操作。之后经过不断调试,还是正确了。

4.代码截图。

二、同学代码结对互评

1.互评同学:

2.我的代码、互评同学代码截图

陈冰艳同学的代码:

 

我的代码:

 

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

不同在于:

各自优势:

三、截图本周题目集的PTA最后排名。

 

四、本周学习总结

1.我学会了简单的链表,可以解决部分链表题目,例如:逆序输出数字。

2.本周的内容,你还不会什么?

删除结点对我来说难度还是不小。例如7-10,7-13.

3.链表考试总结

结果满意么,怎么改进?

  结果感觉还可以,但是考试的过程并不理想,代码打出来很简单,但是总要经过一番不断的调试才能达到正确。加深自己对链表的理解,深入学习链表知识点。

 

posted @ 2018-01-13 22:25  宇凡YF  阅读(672)  评论(0编辑  收藏  举报