博客作业2---线性表

一、PTA实验作业

1.题目1:6-2 线性表元素的区间删除

2. 设计思路

定义i,j两个循环变量
for i=0 to i<=L->last 遍历循序表
if(L->Data[i]>=maxD||L->Data[i]<=minD)
 则重构数组,L->Data[j]=L->Data[i]
  j++
end for
L->Last=j-1
返回L

3.代码截图

4.PTA提交列表说明

  • 1.函数结尾漏掉了对L->last的赋值。解决方法:补上L->Last=j-1。
  • 2.对L->last的概念没有很清晰,所以在遍历循序表时,上下限没有设置好。解决方法:在循环中的上限改为i<=L->last。

1.题目2:6-3 jmu-ds-链表倒数第m个数

2. 设计思路

定义整型变量j=1,num,结构体指针p=L->next,q=L->next
if(m==0)
 return -1
while(j<=m)
 让q指针移动m次
end
while(q)
两个指针再同时移动。
end
return p->data就是链表倒数第m个数。

3.代码截图

4.PTA提交列表说明

  • 1.对m=0的情况没有判断。解决方法:加if(m==0) return -1

1.题目3:7-2 一元多项式的乘法与加法运算

2. 设计思路

void PolynomeCreate
构造数组多项式a[ex] = co;ex指数,co为系数 

void Multiply
定义product[2*MAX]={0};先让所有多项式系数为0 
for( int i=MAX ; i>=0 ; i-- )
  if( b[i] ){
    for( int u=MAX ; u>=0 ; u-- )
	if(a[u])
	product[i+u] += a[u]*b[i];在指数相乘的情况时,再同指数的数系数相加。
   end for
end for
for i=2*max-1 to 0
输出
end for
在循环中利用flag来判断不同情况的输出。

void Addition
for i=max to 0
  将同指数的多项式系数相加。
end for 

3.代码截图


4.PTA提交列表说明

  • 1.用链表的方式在处理多项式乘法时不好处理,所以后来改成数组,比较巧妙的把系数和指数用数组表示。

二、截图本周题目集的PTA最后排名

1.顺序表PTA排名

2.链表PTA排名

3.我的总分:245

三、本周学习总结

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

  • 一边做题目,一边学习各种函数的表达。不是很满意,感觉学习的内容不够牢固且课本没有全面认真的看过。下次敲代码之前,做好预习工作。

2.谈谈你对线性表的认识?

  • 线性表、包括顺序表和链表。顺序表里面元素的地址是连续的,链表里面节点的地址不是连续的,是通过指针连起来的。链表有利于保存数据,它的增加删除等操作会比较容易,而顺序表在查找指定位置的数据时更为方便。两种方法各有各的优势,要根据不同的题目再进行选择。

3.代码Git提交记录截图

posted @   oracler  阅读(312)  评论(4编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示