博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客作业2---线性表
阅读量:7223 次
发布时间:2019-06-29

本文共 3060 字,大约阅读时间需要 10 分钟。

一、PTA实验作业(5分)

1.题目1:6-3 jmu-ds- 顺序表删除重复元素

2. 设计思路(伪代码或流程图)

1.(创建顺序表函数)使用new函数创建新链表L,定义循环变量  i  ;2.         for   i=0  to  n  {                  数组a【i】的元素赋值到顺序表中;                }3.将顺序表长度length赋值为n;1.(删除顺序表重复元素)定义循环变量  i,  j,  k;2.   for   i=0  to  n {3.         for   j=i+1  to  n{多重循环找重复元素4.                if(  i 和 j  指向的元素重复){                              for  k=j   to   n-1  {5.                                  从左向右移动来删除重复的元素;                                     }6.                                 L的长度减一;                              }                                                                                                                                         }        }7.如果顺序表的长度为2 ,却有重复元素,L->length--;1.(输出顺序表)定义循环变量  i;2.   如果循序表长度大于0                 for  i=0  to  L->length-1  {                     输出L->data [i];输出空格;3.输出最后一个元素,不加空格

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

1233242-20180324204558689-1247272930.png

4.PTA提交列表说明。

1233242-20180324204828598-1529124264.png

1233242-20180324204835834-2015226687.png

问题:

  • 一开始我的长度length的值不是直接赋为n,而是通过每一次循环递增,同时初值赋为了-1,所以这样加加减减中就是长度值出错了。解决这个问题是我通过调试,调了挺久才发现这个问题,就改了直接赋为n。
  • 还有一个问题是当长度为2 时有重复,我的函数无法解决这个问题,所以再添了一个if一句判断重复与否及删除。

1.题目2:6-2 jmu-ds-单链表逆置

2. 设计思路(伪代码或流程图)

1.(创建链表不说)1.(链表逆置)定义小指针  s,r。r  指向链表 L的next。2.如果L为空表,输出NULL。3.否则  {         s指向  r  的next;       while(s 的next 域不为NULL){               r 的next  指向再下一个。               将小指针 s  指向的节点接到  L  的头结点后面。               小指针   s  重新指向  r  的next。            }4.当r的next域指向NULL,重复上一个步骤但是小指针  s  不必再指向  r 的next。  1.(输出链表)不说

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

1233242-20180325194809141-640789056.png

1233242-20180325194816242-1997313548.png

4.PTA提交列表说明。

1233242-20180325194911926-435661855.png

问题:

  • 一开始,创建链表的写法出错,在创建过程中把指向头结点的 L 大指针拿来移动,于是在后来的函数中,我定义的小指针就找不到头结点的位置,通过使用多条输出语句来调试,发现了这个问题,就添加了一个小指针 p 在创建链表函数里。
  • 第二次没有全对是因为输出函数多写了一句 p=p->next.

1.题目3:7-1 两个有序链表序列的合并

2. 设计思路(伪代码或流程图)

1.(主函数)定义链表 L, P, T;2.  创建链表  一个L,一个P;3.合并链表4.输出链表 1.(创建链表)开辟L的空间,并且next指向NULL;定义小指针 s,  p;  p=L;定义循环变量  i;2.for   i=0  to   未知{                  开辟小指针  s  的空间,next 指向NULL;3.                 输入  s->data ;4.                    如果输入数值为-1   退出;5.                    将小指针  s  挂到   L  链表上(通过p)            } 1.(合并链表)定义三个小指针  l, p ,t;为合并成的新链表T开辟空间,next指向NULL;2.小指针 l,  p,分别指向链表 L,P的next。小指针  t 指向T;3.while(两个小指针  l,p 还没有指向NULL) {                   比较两个小指针的大小,并将较小值赋给  t。                   t=t->next;              }4.当其中一个链表已经比较完,将另一个链表的剩下值赋给小指针  t。 1.(输出链表)定义小指针  r;   r=T->next;2.如果链表为空,输出NULL;3.否则while(r->next!=NULL){          输出r->data;输出空格;r指向next;        }4.输出最后一个数,不加空格;

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

1233242-20180324213510295-314707422.png

1233242-20180324213517832-230498640.png

1233242-20180324213525036-1240905784.png

1233242-20180324213536087-667059731.png

4.PTA提交列表说明。

1233242-20180324213637400-202941803.png

问题:

  • 编译错误是一些用错编译器,少了符号等小错误。
  • 一个错误是在输出函数有一个链表为空时输出NULL没写,差了一分。

题目2,3同题目1

二、截图本周题目集的PTA最后排名(3分)

1.顺序表PTA排名

1233242-20180325200134728-1303829007.png

2.链表PTA排名

1233242-20180325204848851-2087398520.png

3.我的总分:

205

三、本周学习总结(2分)

1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)

  • 这一周在数据结构的时间上花了挺多的,但是我的安排不合理,我在周末两天内一口气打pta,这没给我带来学习效益,所以希望以后还是尽量课前预习,课后复习打pta这样。我这周遇到问题一般是自己调试解决,以后多向别人或者群里问问。

    安排内容:学习时间安排、编程时间安排、不懂问题是哪种方式交流?

    2.谈谈你对线性表的认识?(1分)

  • 线性表是一种常用的数据结构,常见用顺序表和链表,数据之间的关系是一对一的关系,并且首尾相连。

3.代码Git提交记录截图

在码云的项目中,依次选择统计-Commits历史-设置时间段,进行搜索并截图,如下图所示,需要出现学号、项目提交说明。请在码云中将你的昵称改为“学号-姓名”。

注意:一个合理的项目提交应包含多次提交记录,请务必一开始就使用Git管理你的代码。

Git使用方法:Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)

四、阅读代码(选做,加1分)

1233242-20180326225121573-539018837.png

1233242-20180326225129761-1163710147.png

1233242-20180326225137908-2039666504.png

君霞的代码,她的代码用的是数组,链接关系我觉得比我更明晰一点,代码也比我的的更短。

转载于:https://www.cnblogs.com/yiyeluo0701/p/8641407.html

你可能感兴趣的文章
通通连起来——无处不在的流
查看>>
互联网+时代,看云计算如何改变传统行业
查看>>
ZFS ARC & L2ARC zfs-$ver/module/zfs/arc.c
查看>>
c++类默认拷贝构造函数---浅复制
查看>>
2019年最火热的Golang项目
查看>>
可实现RSSD云硬盘120万IOPS的SPDK IO路径优化实践
查看>>
Vue项目部署遇到的坑(你肯定会遇到!)
查看>>
资源分享计划第三期 0511
查看>>
awk 文本处理
查看>>
【JSConf EU 2018】主题总结 (部分主题已有中文文章)
查看>>
JavaScript面向对象名词详解
查看>>
Java设计模式学习 - 责任链模式
查看>>
JVM,DVM,ART
查看>>
webgl滤镜--会呼吸的痛
查看>>
用Go语言实现微信支付SDK
查看>>
oauth2在php实践
查看>>
LeetCode.914 卡牌分组
查看>>
填坑app:compileDebugJavaWithJavac
查看>>
Android 100+行实现本地跳一跳辅助(不需要连接电脑)
查看>>
位状态的使用
查看>>