当前位置: 首页 > news >正文

浅谈学习数据结构-------顺序表的感受

1.声明:这篇博客只是记录自己的学习感想,无任何知识层面的内容呦~~

2.顺序表是线性表的一种,链表也是线性表的一种,我应该是4月份就接触了顺序表,但是因为这个学习顺序的原因,以及这个学校老师的进度,所以这个学习的节奏不是很连贯,之前是懵懵懂懂,似懂非懂的学习着,发现学到了链表的后半部分之后,真的跟不下去了,所以决定重头在学习一下这个顺序表;

3.我在刚开始学习顺序表的时候,真的感觉这个顺序表好难,我记得自己当时就学习了好几遍,又因为这个通讯录项目的实现是在顺序表的基础上面进行的,因此我当时不得不多学几遍,但是依然感觉很困难,现在回头看看,感觉真的是不一样的,现在已经能够自己独立实现这个顺序表的一些功能了,这个数据的删除,头部插入,尾部插入等等,对于这个顺序表有了更进一步的理解;

4.然后又写了两道题目,一道是这个删除顺序表里面的指定元素,一个就是这个两个顺序表的有序合并,这两个题目当时自己也是看了好几遍,现在再看的时候,依旧是不会的,这个就说明自己第一遍的学习还是存在很大的问题的,其实现在再看的时候,这个第一道就是判断这个元素是否是我们想要删除的数据,是的话就不动,定义两个变量,就相当于是两个数组的下标,如果是我们要删除的数据的时候,就会直接跳过,不是我们想要删除的数据的时候,就会让这个数据向前面移动,这个样的话既排列了这个数组,也让我们想要删除的数据给删除掉了,其实这个实现起来还是挺简单的,但是当我二刷看到他的时候依旧不会,可能我是在背代码吧,以后还是要尝试理解老师的思路方法,其实我感觉自己还是在尝试理解的;

其实在自己个人看来,写博客也是为了防止自己背代码,也是让这个思路方法顺一遍,因为在我写博客的过程中,当我不知道如何想到这一点的时候,就回去反复地看回放,即使我的文章没有人读,我也不会说在某个地方糊弄过去的,这个也是相当于自己吧老师的思路再复盘了一下吧;

第二道题目在我个人看来稍微有一些难度,我对于这个方法稍微有一些印象,就是定义了三个指针,控制他们的移动,让第一个指针和第二个指针分别指向两个数组有元素的位置最后,第三个指针指向的就是这个第一个数组没有元素的最后的位置,然后开始遍历,把这个比较之后大的元素向这个l3指向的位置防止,依次进行但是需要最后注意的就是这个看看是不是l2这个数组先遍历完成的,如果是l1先结束,这个时候就要把这个第二个数组里面的元素给原封不动的挪动过去,因为题目要求这个所有的数组元素最后都要在这个l1数组里的;

5.其实现在想想看来这个顺序表这个问题好像就是这个细节的地方比较多,真的像老师说的那样,当你实现第一个功能的时候考虑到所有的坑点,这个顺序表后续的实现就会比较容易了,像这个数据在挪动的时候因为需要设置为循环语句,我就已经开始尝试改变这个循环变量,尝试自己去实现,因为这个挪动的时候,可以写成这个i=i+1;也可以写做这个i=i-1,在这两种情况下面这个循环条件的控制语句是不一样的,我开始尝试和老师不同的写法进行测试,这个感觉还是挺好的,而且这样能够更好的加强我们对于这个功能的理解;

6.顺序表其实也能会有很多问题,但是并不代表这个数据结构毫无优势,只能说这个顺序表和链表在处理不同问题上面的简洁性有所区别,例如最直接的就是,顺序表的线性结构对于我们的这个数据的删除可能并友好,但是这个数据的遍历同样是这个链表无法比拟的,只能说各有所长吧,好了,对于这个顺序表就写到这里吧,我们下期再见。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LINUX 安装JAVA
  • C++进阶:继承
  • 【Unity】Inspector排版扩展学习初探
  • Python进阶-部署Flask项目(以TensorFlow图像识别项目WSGI方式启动为例)
  • 使用 Vue 和 Ant Design 实现抽屉效果的模块折叠功能
  • Android帧绘制流程深度解析 (二)
  • Java项目:111 基于SpringBoot的在线家具商城设计与实现
  • Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena阅读笔记
  • opencv_特征检测和描述
  • 洛谷B3642 二叉树的遍历(前序、中序、后序)
  • JVM的几种常见垃圾回收算法
  • Flutter笔记:关于WebView插件的用法(上)
  • Linux基础IO【II】真的很详细
  • 什么是CSS的:target选择器
  • css实现优惠券样式
  • #Java异常处理
  • [译]前端离线指南(上)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【347天】每日项目总结系列085(2018.01.18)
  • ECMAScript入门(七)--Module语法
  • export和import的用法总结
  • Git初体验
  • 关于for循环的简单归纳
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 区块链将重新定义世界
  • 使用 Docker 部署 Spring Boot项目
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 微服务入门【系列视频课程】
  • 小试R空间处理新库sf
  • 用mpvue开发微信小程序
  • Spring Batch JSON 支持
  • 从如何停掉 Promise 链说起
  • ​​​【收录 Hello 算法】9.4 小结
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​用户画像从0到100的构建思路
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十八)三元表达式和列表解析
  • (四)模仿学习-完成后台管理页面查询
  • (转)jQuery 基础
  • (轉)JSON.stringify 语法实例讲解
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET 表达式计算:Expression Evaluator
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .net实现客户区延伸至至非客户区
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @WebServiceClient注解,wsdlLocation 可配置
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [240527] 谷歌 CEO 承认 AI 编造虚假信息问题难解(此文使用 @gemini 命令二次创作)| ICQ 停止运作
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大