`
- 浏览:
70524 次
- 性别:
- 来自:
盐城->长沙->深圳
-
今天下午(准确的说应该是昨天下午,现在已经凌晨1点),我一如既往的来到蓝杰实训中心进行编程练习,经过两个半天的苦心研究和不断尝试以及胡哥的相关指导,我初步完成了五子棋的人人对战模式,颇有成就感,感觉我的Java编程实践的学习慢慢走上正轨。
晚上胡哥讲的是队列,是有关数据结构的知识,上学期,这门主修课我是用心听了,所以易于接受,很快就跟上了胡哥的节奏。一开始,我仅仅以为这只是在复习以前所学过的知识,可是,听着听着,我对于队列这一经常会使用到的数据结构有了一些新的认识。
下面我大概讲讲我的收获吧,虽然谈不上什么真知灼见,但是,我认为,对于初学者来说应该还是能起到一些作用的:
一、 为什么会出现队列这一形态的数据结构?拿数组做个对比吧,数组只要一定义,那么它的长度就是固定的了,这貌似对于存放数据没有什么太大影响,但是如果说用户需要存放的数据量会时常发生变化,这时,数组的弊端就体现出来了,增加数据会发生数组的溢出。但是,若担心溢出,一味将数组定义的过于庞大,又会造成内存空间的浪费。这时候,很多人会联想到C++里有关动态数组的定义,然而,Java语言里是没有这一说的,这时队列的作用异常醒目。它很好的避免了数据溢出的发生以及内存空间浪费的问题。
二、队列作为一个众所周知的数据结构,很早就被封装成一种类,为什么我们还要自己写代码将它实现?这里引用胡哥的一句话“只有你经过自己的认真思考将某个数据结构的类型通过代码实现,并尽可能的完善其方法,才能在以后的编程实践中更好的运用这一类型”。确实,经过自己认真思考所编出来的程序代表了个人的最高水平,在自认为完成所有用户所需要的功能时不妨看看Queue类的源代码,找找和大师的差距,在对比中学会成长。
三、谈谈编程过程中的一些心得体会。首先,对于一个类,在实现方法的具体代码时,应先从用户的角度出发,在主函数里写好用户可能会用到的一切方法,这些方法的内容只需要两部分,一是传入的参数类型和个数,二是返回值的类型。只有在完成这些工作后才能开展下一步的工作,也就是具体的代码实现,这一编程的思想是非常重要的,我将在以后的编程中慢慢养成这一良好的习惯。再者,要满足用户的一切需求。拿函数和构造器来说吧,要考虑到用户在使用这个函数或构造器时,可能传入一个参数,两个参数或者不传参,这时,就需要进行函数和构造器的重载操作,对于每种可能都写出相应的代码。除此之外,要考虑到用户传入的数据的不确定性,引入C++里模板的编程思想。总之,一切为用户服务。
以上主要就是我对于队列知识所引发的一些思考,遣词造句尚显不成熟,希望阅读者多提宝贵意见,谢谢!
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
”这样的问题,引发学生思考如何将行数和每行人数相乘,从而进行计算。 在教学中,课件以12行、每行14人为例,演示了多种口算方法。这不仅包括了将12拆分为2个6的分解法,将12拆分为10和2的和的分解法,还进一步...
7. 科赫法则:这是确定传染病病因的经典法则,包括四个条件,即病原体在所有病例中普遍存在、能分离并纯化培养、接种易感动物能引发特异性疾病、从接种动物中再次分离出病原体。 8. 病因探索程序与方法: - 收集...
根据内部统计数据,虽然稳定性相关的bug可能只占总bug的5%,但每一个此类bug都可能导致极其高昂的技术支持和维护成本,甚至引发用户退货或产品召回事件。因此,确保软件的稳定性对于提高用户满意度和降低后期维护...
7. 科赫法则:科赫法则用于确定微生物是否为疾病病因,包括四个标准:病原体在所有病例中普遍存在、能从病人体内分离并纯化培养、接种至易感动物能引发相同疾病以及再次从动物体内分离出相同病原体。 8. 病因探索...
5.5.2 非广播介质引发的问题 5.6 帧中继SHOW命令 5.6.1 show interface命令 5.6.2 show frame-relay命令 5.6.3 show frame-relay命令 5.6.4 show frame-relay map命令 5.7 帧中继调试命令 5.7.1 debug frame-...
5.5.2 非广播介质引发的问题 5.6 帧中继SHOW命令 5.6.1 show interface命令 5.6.2 show frame-relay命令 5.6.3 show frame-relay命令 5.6.4 show frame-relay map命令 5.7 帧中继调试命令 5.7.1 debug frame-...
- **短作业优先(SJF)**:优先选择预计运行时间最短的作业,可降低平均周转时间,但可能引发饥饿问题。 - **高响应比优先(HRRN)**:结合等待时间和执行时间,计算响应比,以兼顾短作业和等待时间。 - **多级...
scrollIntoView引发的思考 JavaScript中的加号运算符趣事 翻译 [翻译] tween.js 中文使用指南 [翻译] SuperAgent 中文使用指南(v3.8.0) 2016~2017 JavaScript权威设计 JavaScript权威设计--jQuery,Ajax.animate,SVG...
数据结构是计算机科学中的核心课程,它探讨了如何有效地...每道题目都可能引发对原理的思考和算法的优化,从而真正掌握数据结构的精髓。同时,答案可以作为检验自己解题思路的参考,帮助找出不足,提升解决问题的能力。
课末,教师会引导学生将所学知识应用于实际生活中,通过“走进生活,感受体验”活动,让学生们思考在日常生活中如何体现集体主义精神,并鼓励他们在实际行动中贡献力量,为集体添彩。 通过这堂课的学习,学生们不仅...
机器人工程挑战赛海洋探险竞赛...机器人工程挑战赛海洋探险竞赛规则旨在激发青少年对海洋的兴趣,引发他们对海洋资源及地球有限资源的保护意识,培养学生对工程技术的认识、团队合作、社会、环境及与人的关系的思考。
5. **降低运维成本**:随着规模的不断扩大,如何通过自动化工具和流程优化来降低运维成本,是每个运维团队都需要思考的问题。 综上所述,Redis在运维层面提供了丰富的策略和技术手段,同时也面临着多种挑战。通过对...
在教学策略上,应注重情境教学,利用生活化的情境引发学生的学习兴趣,使他们在观察和思考中自然而然地提出问题并寻求解答。计算与解决问题应相结合,强化估算训练,让学生明白何时需要估算,何时需要精确计算,培养...
在本“进程调度模拟相关程序”中,我们将深入探讨这一核心概念,通过模拟来帮助理解其工作原理。 首先,我们要了解什么是进程。在操作系统中,进程是程序的一次执行实例,它包含程序代码、数据、状态信息以及资源...
对此,我们需要思考如何在保障学生健康的同时,通过多元化的教育方式,培养他们的抗压能力和团队合作精神,让他们在幸福的生活中理解并珍惜现有的条件,同时不失为未来的挑战做好准备。 总的来说,军训是一个独特且...
2. **网络流量异常**:利用`netstat`、`tcpdump`等工具监控网络流量,分析是系统内部引发的问题还是外部因素导致的异常;如果是TCP参数设置不当,可以调整TCP参数以提高网络效率。 3. **内存泄漏**:使用`MAT`等...
- 身心导入:教师通过提问引发学生兴趣,跑道代表河,砖块代表石头,引导学生思考如何安全、快速过河。 - 学生体验:学生自主尝试过河的方法,教师鼓励多种尝试,并引导学生比较不同方法的优劣。 - 能力提高:...
本文将深入探讨面试中可能出现的一些关键知识点,包括JDK版本迭代带来的Map结构变化、并发编程的挑战以及中间件设计的思考。 首先,让我们聚焦JDK1.7到1.8中Map的变化。在JDK1.8中,HashMap的数据结构进行了重大...
作者留下的空白,不仅留给读者无限的想象空间,更是引发学生深入思考和情感体验的契机。 这篇课文所涵盖的主题丰富而深刻,涵盖了团队精神、包容性、尊重差异以及个体的勇气与成就。它不仅是一堂生动的关于平等和...