本周要求挑3道题目写设计思路、调试过程。设计思路用伪代码描述。题目选作要求:c++
##根据题目给出条件git
#建立顺序表算法
CreateSqList(L,a,n)
定义变量i用以计数//整形变量编程
for i<-0 to n by 1网络
a[i]->L数据结构
end for//结束for循环函数
n->L的长度学习
endspa
#输出顺序表设计
DispSqList(L)
定义变量i用以计数//整形变量
for i<-0 to L->length by 1
输出L->data[i]
end for//结束for循环
if i<L->length-1
则 输出’空格”
end
#删除重复元素
DelSameNode(L)
定义变量i,j,k用以计数//整形变量
for i<-0 to L->length by 1 //for1
for j<-i+1 to L->length by 1 //for2
if L->data[i]等于L->data[j]
则 for k<-j to L->length-1 by 1 //for3
L->data[k]<-L->data[k+1]
end for//结束for3循环
L->length--
end if
end for//结束for2
end for//结束for1
if L->length等于2 //if1
则 if L->data[0]等于L->data[1]//if2
L->length--
end if //结束if2
end if //结束if1
end
##根据题目给出条件
#找倒数第m个数
定义变量j和i用以计数//整形变量
定义指针*q和*s
q<-L->next
s<-L
i<-0
while q不等于NULL
do q<-q->next
i++
end //结束while
if i<m或m<=0
输入不合法返回 -1
end if
for j<-0 to i-m+1 by 1
s<- s->next
end for
返回 s->data
endFind(L,m )
type Linklist
Dim data As INTEGER//声明data为整形变量
设置指针 *next //指向后继节点
end Linklist
Linklist* creatlist(*L)//声明建立链表的函数
#主函数
定义指针*q,*p,*t,*x,*s1,*s2,*s3
为s1,s2,s3,q分配存储空间
置s1,s2,s3,q指针域为NULL
p<-s1;
t<-s2;
x<-s3;
s1<-creatlist(p)
s2<-creatlist(t)
p<-s1->next
t<-s2->next
while p和t
do
if p->data<t->data //1
x->next<-p
p<-p->next
else
if p->data>t->data //2
x->next<-t;
t<-t->next;
else
x->next <- p;
p <- p->next
x <- x->next
x->next <- t
t <- t->next //t指向下一个节点
end if //2
end if //1
x <- x->next //x指向下一个节点
end while
if p等于NULL而且t不等于NULL
x->next <- t;
if p不等于NULL而且t等于NULL
x->next<-p;
s3<-s3->next;
if s3不等于NULL
输出s3->data
s3=<-s3->next;
while s3不等于NULL
输出s3->data
end while
s3<-s3->next;
else
输出 NULL
end
#建立链表函数creatlist( *L)
定义指针*s,*r;
给r分配存储空间
r->next<-NULL;
s<-L;
输入r->data
while r->data不等于-1
s->next<-r;
s<-s->next;
给r分配存储空间
r->next<-NULL
输入r->data
end while
返回链表L
end
顺序表:6-3 jmu-ds- 顺序表删除重复元素(25 分)
缘由:弄错了变量名
缘由:算法错误
更正:把双重for循环改成三重for循环
更正:第十八行处应该为L->length-1由于末尾不能有空格
单链表:6-3 jmu-ds-链表倒数第m个数(20 分)
缘由:未认真选题写了多个函数
更正:删去多余函数
缘由:21行j未从零开始
更正:j=0,遍历应从头节点开始
有序表:7-1 两个有序链表序列的合并(20 分)
缘由:弄错了变量名
缘由:声明函数名与代码中函数名不匹配;
更正:改为声明过的函数名
本次2个题目集总分:295分
pta总分:245分
总分:2.5分
安排内容:
(1)学习时间安排:周末空闲时间,有时睡前时间;
(2)编程时间安排:晚自习后到断网时间、偶尔没课的时候;
(3)不懂问题是哪一种方式交流?:与同窗互相交流,进行讨论,并思考和对比本身的思路与他人的不一样、翻查手头资料,找到本身的错误点,
并思考、利用网络、
改变:
学习时间的安排太过度散,时常因各类计划而改变。
而且我发现本身对基础知识的掌握不够熟练,应该先将书本知识好好掌握,再予以扩展。
还须要像挤出海绵里的水同样挤出时间,多学多练。
主观认识:线性表是一种最简单、最经常使用的数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素以外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操做。
具体小结:顺序表:便于随机存储,缺点是不便于插入删除等操做,由于插入删除一个元素须要移动其后的全部元素,可是链表不存在这个问题,链表只要改变指针就行,时间复杂度小链表于顺序表:便于插入删除等操做,可是随机存储没有顺序表方便。
在码云的项目中,依次选择统计-Commits历史-设置时间段,进行搜索并截图,以下图所示,须要出现学号、项目提交说明。请在码云中将你的昵称改成“学号-姓名”。