笨鸟的数据结构理解 - 目录

本文作者分享了自己学习数据结构的心得,指出数据结构并不如想象中高深,而是逻辑思维的体现。通过中药店的药柜比喻解释了数组的概念,并强调算法是程序的灵魂。作者计划逐步学习并记录数据结构和算法,希望通过自己的理解帮助他人共同进步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

分享给所有在努力奋斗的朋友们 ^ _^

坚持每天看一点 数据结构 这本书。我发现思维增长了很多。借此想到 其实能学程序的人 ,头脑也是挺聪明的,那为什么我们培训机构出来的人 往往会对数据结构以及算法恐惧害怕呢? 我思考了很久,经过这几天的看书学习中发现,我们总是对国外程序人员抱有永不能超越的感觉,感觉国外开发着 无论是算法也好,思维也好。都胜过自己,为什么会有这个感觉呢?就是因为 感觉的人 可能根本就没有去认真系统的去学习和思考过。我见闻在美留学的国人数学是往往超过国外人的。由此想到 我们黄种人的思维不会低于白种人,别人能做到的,我们也必然能做到。本人没读过大学,高中也没读完,确实刚从培训机构出来工作,什么也不懂,什么数据结构,什么算法。什么计算机组成原理,什么操作系统,一概不知。由于不知而产生害怕 ,由于害怕而不去学习接触,如何的循环 导致自己永远接触不到需要去花时间较劲脑子去思考的知识,就以为认为这些知识很高深很不可逾越。希望和朋友们一起分享 一起进步。

很纳闷,以前学习java的时候 一直以为 数据结构 仅仅就是指 java当中特定的关键字造成的结构,比如 数组,java中就有这么一个语法,以及 int double boolean long 等等这些类型,直到为了提高自己看了《数据结构》 这一书后,才理解到 原来数据结构 也可以是一种逻辑思维。后来臆想的推理到 java当中的 这些 值类型的关键字 其实也是开者写好的结构,就是开发者把内存中的数据给整合在一起 以一个特定的方式 来便于存取,我想这个就是 结构用处了。数据结构 其实就是各项零散数据的一个整合结果。(不知道理解的对不对。以后有更深的体会 再来修改 看到这里的朋友见谅!)。上面说的可能不太能直观的表述出来,我这个人就是比较笨,往往用专业术语对我讲述描述的 我老是不能很快的理解。所以在这里 我把我的理解方式 写下来,希望能帮助到 需要的人。
最浅显的比方,我们程序需要用到的数据,都是在内存中的,每个数据都有各自的内存地址,至于是如何放入内存的我们不得而知,在内存中是有序的呢还是无序的呢 我们也不用去关心,我们只要知道该数据的地址就行,然后我们根据取得的各项数据地址 ,可以逻辑的给这些数据根据需要使用的目的组合成一个想要的结构。然后就能很好很方便的使用了。比如 数组这个结构 在现实中我们是经常用到和看到的,就像中药店的药柜,药柜中的抽屉是一排排的,需要取的话就根据每个小抽屉的标签去取,这样就很方便的管理好了所有的药材。(最近咳嗽厉害 去了趟中药房,本人不才 就用这个比喻)。其实现实生活中 只要使用到有数量的东西 我们都会很自然的给予他们一个结构 来存放。比如 去超市买东西,挑选好了 用一个口袋装起来,这个装好商品的口袋就是一个数据结构体了(贴近于数据结构中的堆)。再比如我们去河里抓鱼,抓到一条 就用绳子穿过鱼鳃给串起来 再抓到一条 又解开绳子给 穿进去(就像链表)。太多太多的例子,不过现实生活中 用到的例子都偏向简单。计算机中所有的操作都基于数据的操作,所以现实生活中那些简单的结构 不能满足 计算机的运算需求,故需要更多的学习和理解 各种各样的结构体。

工作4个月了。作为高中没读完,数学成绩没及格过的我。发现算法这个东西确实很重要。它就是程序的灵魂,以前一直看书上这么说算法是是灵魂,本人不才,一直无法感悟,其实想想也是。作为培训机构出来的人。没有经过太多理论的熏陶。都是直接做项目。自己也体会到,所谓的项目就是不断的重复功能,涉及到算法的地方非常的少。在学校学习的时候印象中深刻的可能就是那个ajax做的动态菜单灵活的方式,让我才意思到算法的重要性,但是作为数学成绩差的我。一直在逃避。其实我知道它重要 只是一直在刻意的逃避而已,在工作的4个月中,来csdn也学习到了很多东西,很感谢csdn的朋友。在坚持学习每天一个算法题目后,我在今天终于做了决定,决定把学习的心得给坚持不懈的 写入到csdn中来,我不是特聪明的那种,所以需要一个载体来记录学到的东西。也可以跟csdn的朋友们分享下 学习经验。大家共同进步。

工作1个多月的时候,遇到了需要识别验证码的任务,咱们公司需要去采集各大电商的数据,电商的后台偶尔有验证码的,所以用httpclient 去爬取页面就失去了效果。必须得破掉验证码才能后台登陆 采集需要的数据,不过也有找到漏洞而不用验证码登陆的(后来被修复了)。这里讲多了。以后再验证码中 再讲到,这里只是想说下,我在识别验证码的过程中 发现算法的重要性。也真心的折服于优美的代码下面。干净简洁的代码是都么的优美。尽管有些伤脑筋,还是硬着头皮的一天学一个算法吧。。渐渐爱上了这些优美。

由于没有读过大学。所以对什么线性代数(不知道对不对),这类的根本不了解。在自己学习之前,本打算学习C语言版的数据结构,后来发现还得学习C语言,甚至还得学习数学,这样会花费太多的时间,毕竟我更需要在自己的Web开发上花时间去学习,很疼苦,不知道该怎么办。后来久经思考。发现 学习数学不就是为了锻炼逻辑吗?(也许是我肤浅,还未看到数学的更多奥妙),心想 学习数学也得学习它的语法,但是它复杂的语法就是为了表示它的逻辑。我何尝不直接学习逻辑呢?这里就像到了 数据结构和算法。心想硬着头皮的来吧 一步一个算法的 写下来。在实练中 去领悟 算法逻辑的思想和灵魂。


1.数组 (最简单最常见的一种数据结构)


2.栈 






评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值