`
布衣Sao年
  • 浏览: 8041 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

不要自己束缚了自己,要让自己“舒服”自己-基本数据结构

 
阅读更多

      学习编程有一段时间了,发现自己在写代码上有了一个很关键的变化:

                                                   int[] a=new int[10];

类似的句子少了很多。其实从中可以看到几个点:第一,a这种没有代表意义的命名不要出现在程序里,这个要相当注意,其重要性不多说;第二,那个“10”让人感觉有束缚感,没有一点生机,这是今天的主题。

      数组确实是很好用的一个基本结构,对于某些测试非常方便,然而在处理实际应用的时候,总显得自己分配的数量不够用,然后又往前面使劲翻,在定义数组大小的地方改多一点,然后继续写,又觉得不够了,翻回来继续改,用完了改,改了用。。。。。。这种情景在我们这些菜鸟看来是不是很亲切呢?呵呵。。。

为了让自己在编程时存放数据更加舒服、方便,是不是应该寻求一种方式能够让他自动增减大小的?

 

数组队列:常用结构,连续的空间,其实也是一个数组,可以理解为把数组看成一个类,有它自己的方法,包括增(add)、删(delete)、改(updata)、查(search)等等。。。用法很简单:

1、创建这个队列类的对象(某一个类或者基本数据类型的数组:ArrayList A=new ArrayList();)

2、使用这个对象的方法(A.add(Object o);)

当然这也是大部分常见数据结构的用法。数组队列中的每一个元素就相当于数组中元素,只是我们把以前对数组的一些操作封装了起来,也就方便调用,至于封装起来的方法的实现,那就见仁见智了,比如add方法,你可以一次加一个,也可以一次分配n个空间,用完了在分配n个,这样就实现了自动增,是不是比前面那个“10”好用多了?至少不用老是往前翻代码改数组大小了。

 

链表队列:同类型的数据存放在不连续的空间,我们就要用一根链子把它连起来,那么每一个数据元中就应该有一个属性来存放下一个数据元的空间地址,那么我们只要知道第一个头数据,就可以得到整条链子,它同数组队列一样,只是每个节点(相当一个数据元)的构造中有个他本身的类型用来记录他下一个元素的地址:

Node{

Object o;

Node nextNode;

}

然后一系列这些Node通过nextNode连接起来组成一个队列,至于他增、删、改、查等方法的实现也不能像数组队列那样根据下标去完成(注意他没有下标),而只能通过头结点指针一个个往下找,找到要增、删、改、查的地方了在进行相关操作,当然他执行操作没有数组那么麻烦,要新建数组或者整体平移,他只需链接或者断开链接就行了。

链表也不仅仅局限于单向的,就是只记录下一个记录的,他可以同时记录上一个节点和下一个节点,即双向链表,还可以是最后一个节点记录头节点的循环链表,具体要那种就要根据自己的需要,没有最好的,只有更适合自己的,更让自己舒服的那种。

 

树:比较常见的二叉树和哈弗曼树,是链表结构的延伸,也是通过节点指针进行链接,懂了链表的树也会很好理解,也就是多了几个指针:nextNode1,nextNode2....也许还可以记录前一个节点的地址parentNode等等。

总结:以上三种基本数据结构的实现代码至少要敲10遍,要做到给我一张纸,我能写出他们的代码实现,每一遍都会有不同的收获,比如查找链表队列中元素时有没有考虑头节点为空(空链表队列)怎么处理?至于什么时候用数组队列,什么时候用链表队列,让咱在舒舒服服的敲码中来慢慢理解,慢慢领悟。。。

 

分享到:
评论

相关推荐

    数据结构(中科院) 1

    本文将深入探讨数据结构与算法的基本概念、相互关系以及它们在解决计算问题中的重要性。 首先,数据结构是组织和存储数据的一种方式,其目的在于能够高效地进行数据的存取与修改。数据结构的选择直接关系到算法执行...

    数据结构课件数据结构数据结构

    ### 数据结构课件中的硬件基础知识点 #### 1. 现代PC的历史与发展 - **Altair 8080 的出现**:1975年,《大众电子》杂志刊发了一篇关于Altair 8080的文章,这款机器售价仅为397美元,虽然配备的是Intel 8080处理器...

    Java框架对初级开发者的束缚及化解策略.pdf

    要摆脱这种束缚,初级开发者需要了解框架的基本内涵和结构,了解框架的配置文件和API,学习如何使用框架来实现自己的设计思路。同时,初级开发者也需要树立自己的设计思路,不受框架的束缚,按照自己的想法进行软件...

    严蔚敏(C语言版)数据结构课后习题集

    1. 基本数据结构:线性表、栈、队列、链表、数组、字符串等。这些是最基础的数据组织形式,也是许多复杂数据结构的基础。 2. 树形结构:二叉树、平衡树(如AVL树、红黑树)、堆。树结构在搜索、排序和组织复杂数据...

    少数夸克束缚态的R-矩阵计算

    实施R-矩阵方法是为了研究配置空间中的重魅度和底双夸克,三夸克,四夸克和五夸克,分别是夸克-反夸克,双夸克-夸克,双夸克-反夸克和双夸克-反夸克系统的束缚状态 。 这些系统的质谱和尺寸是针对不同的部分波通道...

    铁链束缚商务ppt模板.rar

    模板应提供足够的可编辑空间,让使用者能轻松定制自己的演示文稿。 10. **兼容性**:考虑到不同用户可能使用不同的软件,模板需确保与常见PPT软件(如Microsoft PowerPoint、Apple Keynote、Google Slides等)的...

    219-社会主义基本制度确立以后-还要从根本上改变束缚生产力发展的经济体....ppt

    219-社会主义基本制度确立以后-还要从根本上改变束缚生产力发展的经济体....ppt

    数据结构教学策略初探.pdf

    教师要设计有效的练习和实验,帮助学生深化对数据结构的理解。 7. 参考文献 文章列举了一系列参考文献,展示了数据结构及学习理论的其他研究成果,这些研究为本文的教学策略提供了理论基础和实践经验。 综上所述,...

    论文研究 - 束缚场与辐射场之间的固有差异

    本文的目的是利用电动力学的基本理论和实验要素来推导辐射场和束缚场的性质。 各种各样的例子证明辐射场和束缚场不代表相同的物理对象。 这个结论是新的。 一些示例属于经典域,而其他示例属于量子域。 此结果的后果...

    半导体器件应用基础:半导体器件基本结构.pdf

    "半导体器件应用基础:半导体器件基本结构" 半导体器件应用基础是指半导体器件在电子系统中的应用和基本结构。半导体器件是电子系统的核心组件,其应用范围非常广泛,包括计算机、通信设备、消费电子产品等。在...

    生活要自己过,苦要自己吃,何必看别人脸色去生活.pdf

    13. 珍视快乐:追求让自己开心的事物,不被他人的观念束缚。 14. 极端与平衡:在喜欢和不喜欢之间找到平衡,全情投入或彻底放弃,都应慎重考虑。 15. 人际交往:不要过度迎合他人,保持自我价值,同时也懂得适时...

    Helix MP3解码库脱离汇编指令束缚,运行在任何处理器上的解决方案

    Helix MP3解码库采用了高级算法和数据结构,将解码流程分解为一系列可复用的模块,如位流解析、频谱重建和窗口函数等。这些模块设计时考虑了效率和通用性,使得它们能够在不同的处理器上高效执行,而不必依赖特定的...

    规范理论的束缚态谱与Brout-Englert-Higgs机理的解析关系

    我们应用Fröhlich,Morchio和Strocchi提出的方法,利用Brout-Englert-Higgs机理分析各种规范理论的束缚态谱。 这些作为标准模型之外的理论的基础,但也强调了标准模型弱势群体的特殊作用。 我们将展示Fröhlich-...

    Java框架对初学者产生束缚的原因及解决方法.pdf

    最后,需要跳出 Java 框架的束缚,尝试着使用自己的思想和方法来编写程序,从而实现自己的编制思想。 只有通过这些方法,初学者才能更好地掌握 Java 语言,避免受到 Java 框架的束缚,从而更好地发展自己的编程能力...

    行业文档-设计装置-一种可拆卸式病员束缚带.zip

    设计该装置的文档"一种可拆卸式病员束缚带.pdf"可能会详细阐述该束缚带的设计原理、结构、操作步骤、使用注意事项以及临床试验结果。文档中还可能包含相关的医疗案例分析,这不仅为医护人员提供了学习的范例,也为...

    计算Wannier紧束缚模型的从头算自旋轨道耦合强度.zip

    在电子结构计算领域,Wannier紧束缚模型(Wannier Tight-Binding Model)是一种非常重要的理论工具,它能够从第一性原理计算出发,提取出材料的低能有效哈密顿量。这种模型有助于理解复杂的电子性质,如能带结构、...

    基于线上线下混合式数据结构的教学研究.pdf

    本文档是一篇关于“基于线上线下混合式数据结构的教学研究”的学术论文,内容围绕当前数据结构课程的教学模式,特别是针对传统以课堂理论教学为主的教学模式所面临的局限性,提出了一种新的线上线下混合式教学模式。...

    Aharonov–Bohm样场中大量费米子的束缚态

    像Aharonov–Bohm(AB)这样的场中大量费米子的束缚态已经过分析研究。 具有(AB)势的哈密顿量本质上是奇异的,因此需要指定一参数自伴随扩展。 我们用2 + 1维构造AB势的自伴狄拉克哈密顿量,该势由原点的边界条件...

    一维多势垒结构准束缚态的MATLAB分析计算.pdf

    本文将深入探讨如何通过MATLAB这一强大的数学计算平台来分析和计算一维多势垒结构中的准束缚态,这种方法不仅为理论研究提供了便利,也为实际应用提供了强大的工具支持。 首先,文章将对量子力学中的基本概念进行...

Global site tag (gtag.js) - Google Analytics