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 ...
随机推荐
- JQuery -- 介绍,选择器及其示例, 基本选择器,层次选择器,过滤选择器,表单选择器
1. 什么是jQuery对象 jQuery 对象就是通过jQuery包装DOM对象后产生的对象. jQuery对象是jQuery独有的.如果一个对象是jQuery对象,那么它就可以使用jQuery里的 ...
- LeetCode第[3]题(Java):Longest Substring Without Repeating Characters 标签:Linked List
题目中文:没有重复字符的最长子串 题目难度:Medium 题目内容: Given a string, find the length of the longest substring without ...
- 第一章 Burp Suite 安装和环境配置
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击.在渗透测试中,我们使用Burp Suite将使得测试工作变得更 ...
- 修改element内部样式的两种方式
第一种: 全局样式修改: 但这种方式有点不好的地方,这样会影响别的组件,比如修改elementUI的树结构的样式,这样改的话会影响到别的树组件: 第二种方式: 在要修改的组件内修改树结构样式 比如改这 ...
- 【Java】方法的重载与重写
一.方法的重载 1.概念 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数. 调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方 ...
- 017对象——对象 get_object_vars get_parent_class is_subclass_of interface_exists
<?php /** */ //get_object_vars($obj) 获得对象的属性,以关联数据形式返回. /*class study{ public $name; public $age; ...
- LeetCode OJ:Majority Element(主要元素)
Given an array of size n, find the majority element. The majority element is the element that appear ...
- poi设置背景色
headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); headStyle.setFillForegroundColor(HSSFCo ...
- 视图框架:Spring MVC 4.0(2)
在<springMVC4(7)模型视图方法源码综合分析>一文中,我们介绍了ModelAndView的用法,它会在控制层方法调用完毕后作为返回值返回,里面封装好了我们的业务逻辑数据和视图对象 ...
- Leetcode 912. Sort an Array
class Solution: def sortArray(self, nums: List[int]) -> List[int]: return sorted(nums)