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 ...
随机推荐
- java-给微信推送消息 利用企业微信
目的:给关注用户推送消息 场景:自动化测试,运维监控,接口访问等报错预警.例如线上接口报错,发送提醒消息 准备工作: 1:注册企业号(为什么不用公众号呢?) 企业号注册 2:常用参数介绍: 1:COR ...
- spring mvc : 中文传值(post/get)中文乱码
请将以下代码放入 web.xml文件中,注意存放顺序,否则会报错.filter应该放在context-param后面: <!-- 字符过滤器 --> <filter> < ...
- 包嗅探和包回放 —tcpdump、tcpreplay--重放攻击
攻击方式:tcpdump 进行嗅探,获取报文消息:然后用tcpreplay回放攻击 arp欺骗可以使用 arpspoof kali linux有这三个工具 转载地址https://www.cnblog ...
- Appium 自动化测试(5)-- Appium详细介绍:Appium 手机自动化测试_TesterHome公开版pdf
- UVA 1626 区间dp、打印路径
uva 紫书例题,这个区间dp最容易错的应该是(S)这种匹配情况,如果不是题目中给了提示我就忽略了,只想着左右分割忘记了这种特殊的例子. dp[i][j]=MIN{dp[i+1][j-1] | if( ...
- npm的镜像和淘宝互换
1.得到原本的镜像地址 npm get registry > https://registry.npmjs.org/ 设成淘宝的 npm config set registry http://r ...
- IOS-SQLite3的封装
IWStudent.h // // IWStudent.h // 02-SQLite的封装 // // Created by apple on 14-5-22. // Copyright (c) 20 ...
- 在启动mysql的时候出现如下问题:“ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)”
今天在启动Mysql 的时候出现如下的问题:“ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)” 在查询 ...
- 【机器学习基石笔记】七、vc Dimension
vc demension定义: breakPoint - 1 N > vc dimension, 任意的N个,就不能任意划分 N <= vc dimension,存在N个,可以任意划分 只 ...
- dojo chart详解
Dojo提供了一套很完善的统计图(Chart)接口,在dojox/charting下面,可以支持很多种类型的. .简介 Dojo统计图提供快速的.简单的接口实现美观的.交互性强的web统计图表的实现. ...