1.题目1:最长连续递增子序列
2.设计思路
输入表长 n
for i = 1 to n
cin >> a[ i ]
如果 a[ i ] <= a[ i-1 ]
mark = i
end if
如果 i-mark > right-left , 有更长的序列
更新序列端点 left = mark; right = i;
end if
end
输出最长子序列
3.代码截图
4.
1.题目2:判断链表结点对称
2.设计思路
3.代码截图
4.
1.题目3: 两个有序序列的中位数
2.设计思路
用尾插法创建两个带表头的链表 A 和 B .
List p ,q 分别指向两表的第一个结点
定义 i 计数
while: p 和 q 不全为空
如果 q 为空 , 或者 q 不为空但 p->data < q->data
如果 i == n , 返回中位数 p->data
否则 p 后移.
end if
否则
如果 i == n , 返回中位数 q->data
否则 q 后移
end
i++
end
3.代码截图
4.
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名
2.链表PTA排名
3.我的总分: 295
三、本周学习总结
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?
- 本周主要都是在上课的时候学习数构 , PTA题集都是先拖几天才开始写 , 对自己的安排感觉还行吧 . 敲敲代码维持一下生活 .
2.谈谈你对线性表的认识?
- 线性表的储存方式有数组和链表 . 数组的内存连续 , 而链表是离散的 , 是靠指针串联的 .
- 链表用起来比较有条理 , 且不会太浪费内存 . 但利用好数组的下标可以更便捷地解决一些问题 .