week-02 线性表
一、PTA实验作业
题目1:顺序表 7-1 最长连续递增子序列
1. 设计思路
定义结构体List,定义数组Data[maxsize]表示顺序表元素,变量Position表示位置,变量Length表示顺序表子列长度,变量Maxposition表示最长的递增子序列最后一个元素的位置,变量 L->Maxlength表示最长的递增子序列长度。
定义结构体L,变量n表示顺序表长度,变量j表示数组下标
for i=0 to n-1
Data[i]存储顺序表元素
end for
for i=0 to n-1(i+=此段子列长度)
判断后一个元素是否比前一个元素小,若是,则开始新一段子列的长度计算与位置记录
比较此段子列长度与之前子列长度最大值
end for
输出最长的递增子序列
2.代码截图


3.PTA提交列表说明

编译错误: 在C编译器中调用C++头文件
解决方法:将编译器改成C++编译器
题目2:链表 6-5判断链表结点对称
1. 设计思路
初始化带头结点空双向循环链表: 给头节点分配存储空间并将指针域设为空
销毁链表: 定义两个结构体指针p和r分别指向两个相邻结点,通过循环顺序删除结点
正向顺序输出链表: 定义结构体指针p,指针循环后移,依次输出结点元素
在第i个位置插入结点: 链表为空跳出函数,否则,定义两个结构体指针p和r,通过循环使指针p指向待插入位置的前一个结点,然后进行插入操作
判断链表是否对称: 若链表为空,跳出循环;若链表不为空,定义两个结构体指针p和r,p指向第一个存储元素的结点,r通过循环指向尾结点,两指针循环向中间移动,判断对称位置元素是否相等
2.代码截图


3.PTA提交列表说明

答案错误:偶数对称测试点运行结果为段错误
解决方法:将
while(p!=r){
if(p->data!=r->data) return 0;
p=p->next;
r=r->prior;
}
改为
while(p!=r&&r->next!=p){
if(p->data!=r->data) return 0;
p=p->next;
r=r->prior;
}
题目3:6-2 单链表逆置
1. 设计思路
若链表为空或只有一个元素,不对链表进行逆置操作
若链表有多个元素,定义两个结构体指针p和q,循环将首元素结点后的结点通过头插法插到头结点之后,使元素结点逆置
2.代码截图


3.PTA提交列表说明
此题经测试修改才交到PTA上,过程中题例输入,答案错误,重复输出首元素,原因是输出首元素后未将指针后移就输出数据
解决方法:将
cout<<p->data;
p=p->next;
while(p){
cout<<" "<<p->data;
}
改为
cout<<p->data;
p=p->next;
while(p){
cout<<" "<<p->data;
p=p->next;
}
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名

2.链表PTA排名

3.我的总分:1.5分
三、本周学习总结
1.学习时间安排:分散在做题时间里
编程时间安排:大部分课余时间
交流方式:在网上查找,和同学讨论
对自己的安排不满意,做题效率低下
打算做出的改变:先看完课本内容再去做题,规范做题格式,熟悉思路与方法
2.对线性表的认识:
线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,除了第一个和最后一个数据元素之外,其它数据元素都有前驱和后继。
顺序表:
优点: 用一组地址连续的存储单元依次存储数据元素,可以直接找到某一位置上的元素。
在已知数据元素个数的情况下,每个元素的存储密度大,为1。
缺点:插入和删除的时候要将插入点后 的所有元素依次后移或前移。
在未知数据元素个数的情况下,开辟空间过大会造成较大的空间浪费。
链表:
优点:在未知数据元素个数的情况下,虽然有非数据项的指针占空间,但比起顺序空间浪费
会比较少。
插入和删除的时候只需改变几个几个结点的指针域,不需移动结点位置,耗时短。
缺点:每个结点开辟的位置都是随机的,会产生很多小的碎片空间。
3.代码Git提交记录截图

week-02 线性表的更多相关文章
- DS博客作业02—线性表
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2.谈谈你对线性表的认识及学习体会. 线性表最重要的就是对指针的操作,插入删除都是看指针的指向进行操作以达到改变节点,以达到目的的.对于上学 ...
- 2-7-集合运算(A-B)∪(B-A)-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第2章 线性表 - 集合运算(A-B)∪(B-A) ——<数据结构>-严蔚敏.吴伟民版 ★有疑问先阅读★ 源码使用说明 链接☛☛☛ <数据结构-C语言 ...
- 数据结构(1) 第一天 算法时间复杂度、线性表介绍、动态数组搭建(仿Vector)、单向链表搭建、企业链表思路
01 数据结构基本概念_大O表示法 无论n是多少都执行三个具体步骤 执行了12步 O(12)=>O(1) O(n) log 2 N = log c N / log c N (相当于两个对数进行了 ...
- 02线性表链式存储_LinkList--(线性表)
#include "stdio.h" #include "string.h" #include "ctype.h" #include &qu ...
- [置顶] ※数据结构※→☆线性表结构(stack)☆============栈 序列表结构(stack sequence)(六)
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表.栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据.栈 ...
- 【数据结构】线性表&&顺序表详解和代码实例
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺 ...
- [数据结构 - 第3章] 线性表之单链表(C++实现)
一.类定义 单链表类的定义如下: #ifndef SIGNALLIST_H #define SIGNALLIST_H typedef int ElemType; /* "ElemType类型 ...
- 线性表Linearlist
顺序存储,链式存储,索引存储,散列存储 基本运算 SLIST 1.置空表 void SetNull(&L) 2.求长度 int Length(L) 3.取元素 ...
- 数据结构(Java描述)之线性表
基础概念 数据结构:是相互之间存在一种或多种关系的数据元素的集合. 逻辑结构和物理结构 关于数据结构,我们可以从逻辑结构和物理结构这两个维度去描述 逻辑结构是数据对象中数据元素之间的关系,是从逻辑意义 ...
- JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表
Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...
随机推荐
- Hibernate缓存何时使用和如何使用
http://developer.51cto.com/art/201202/315922.htm 1. 关于hibernate缓存的问题: 1.1. 基本的缓存原理 Hibernate缓存分为二级, ...
- 在数据库中添加数据以后,使用Mybatis进行查询结果为空
在数据库中添加数据以后,使用Mybatis进行查询结果为空,这是因为数据库中添加数据忘记commit的缘故.
- android6.0、7.0、8.0新特性总结之开发应用时加以考虑的一些主要变更。
android6.0 参考一:简书Android 6.0 新特性详解 参考二:关于Android6.0以上系统的权限问题 参考三:值得你关注的Android6.0上的重要变化(一) 参考四:值得你关注 ...
- 公有云厂商DDoS防护产品竞品分析——内含CC的一些简单分析,貌似多是基于规则,CC策略细粒度ip/url//ua/refer
公有云厂商DDoS防护产品竞品分析 from:http://www.freebuf.com/articles/network/132239.html 行文初衷 由于工作关系,最近接触了很多云上用户,对 ...
- Linux 下硬链接和软链接的说明
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln 命令产生硬链接. 硬连接 硬连接指通过索引节点来进行连接.在 Li ...
- webpack打包图片资源找不到问题
当我们进行前端打包时,需改成如下配置: 往常这样打包是没有问题的,可是今天进行项目打包的时候缺报图片找不到的错误,如图所示: 头部组件的图片资源找不到错误,后台发现因为头部组件的背景图片size过大, ...
- LeetCode OJ :Move Zeroes (移动0)
Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...
- 【linux】打包压缩命令
打包命令:tar\zip 压缩命令:gzip 打包文件 tar -zcvf xxx/ tar -xvf xxx.tar z的意思是通过gzip压缩 c是create是生成打包的意思,x是解包 v是压缩 ...
- Eclipse上安装springsource-tool-suite(转)
Eclipse上安装springsource-tool-suite 版本必须匹配. spring tool suite 是一个基于eclipseIDE开发环境中的用于开发spring应用程序的工具.提 ...
- H264的nalu type有哪些?
1.forbidden_bit: 禁止位,初始为0,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元. 2.nal_ ...