数据结构——给数据排排坐
beginning
栈、队列、数组、链表、树、图…这些东西感觉有些没听过。但实际上,我们每天都在使用它们。
从栈开始
根据《算法导论》所说:
栈是一种后进先出的动态集合
但我们与其尝试理解这么晦涩的文字,不如打开你家的碗橱看看。
这是你家的碗。为了节省空间,它们被堆了起来。
此时,我们想要放入一个碗,就只能在最上面放;同样的,拿出一个碗,也只能从最上面拿。如果你想拿一个碗,但它的上面还有碗,你就必须将它上面的碗全部拿开。
最先放进去的,最后才能被拿出来。这就叫先进后出。那换一种说法,就是后进先出。
你家的碗堆,就是一个栈。
队列
队列是一种先进先出的动态集合
有了栈,这句话就应该很好理解了。
如果还是不太明白,那就去热门景点排下队吧。
数组
我们来画一张表格。这张表格就是一个数组。表中存着物体。
根据表的不同,数组的类型也不同。
只有一列的是一维数组,和一张正常的表一样的是二维数组,变成一排排柜子的就是三维数组。\r\n四维及以上的…尝试去类比一下吧。
链表
链表是一种各对象按线性性序排列的,由对象指针决定的数据结构
链表,不是一张表,而是一条链。
既然如此,那我们就来创建 ...
找到一个数据——哈希表
beginning
让我们幻想一下这样的一个场景:某一天,你成为了一个公司的档案管理人员。你的工作很简单:当其他员工来带着一份档案来找你的时候,准确无误的找到完全一样的档案。
但要注意,这些档案毫无规律可言,而且,相当的长。
遍历
这份工作听起来很简单,不是吗?毕竟,只是想完成它的话,大不了你可以一个个的进行比对,直到找到一样的那份。
更专业一些地说:遍历一遍。
但这家公司越做越大,你要处理的档案也越来越多。终于,它超出了你的能力范围。你不想被开除,那必须解决这个问题。或许,分类是个好办法。但别忘了一个条件:
这些档案毫无规律可言,而且,相当的长
也就是说,几乎没有一个“好”的分类规则,使得分出的类别少,又能做到每一类中档案的数量相差不多,且差别巨大。除非,我们能强行给创造出“规律”。
映射
要想做到这一点,我们要进入数学的世界,了解一下“映射”。
两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。
其中,b称为元素a在映射f下的象,记作:b=f(a)。a称为b关于映射f的原象。
集合 ...
第一篇文章
今天终于完成了网站的配置和调试,那从今天起这个网站就正式上线啦!!
在此非常感谢WordPress和这个主题的开发人员,是你们让这个网站的存在成为了可能。
本人0741或泠妄(随便哪个都可以)\n\n我目前是一个高中生(还是在期末考的那种,也不知道哪里来的胆子)。总是感觉“要去做些什么吧”,于是便开始了这样的旅程。\n\n当然,因为我菜,做出来的东西肯定还不会很好。但我坚信,只要走下去,应该还是会变的吧……
mail: LingWang@wcysite.com
泠妄
以上