`
- 浏览:
69639 次
- 性别:
- 来自:
盐城->长沙->深圳
-
今天下午(准确的说应该是昨天下午,现在已经凌晨1点),我一如既往的来到蓝杰实训中心进行编程练习,经过两个半天的苦心研究和不断尝试以及胡哥的相关指导,我初步完成了五子棋的人人对战模式,颇有成就感,感觉我的Java编程实践的学习慢慢走上正轨。
晚上胡哥讲的是队列,是有关数据结构的知识,上学期,这门主修课我是用心听了,所以易于接受,很快就跟上了胡哥的节奏。一开始,我仅仅以为这只是在复习以前所学过的知识,可是,听着听着,我对于队列这一经常会使用到的数据结构有了一些新的认识。
下面我大概讲讲我的收获吧,虽然谈不上什么真知灼见,但是,我认为,对于初学者来说应该还是能起到一些作用的:
一、 为什么会出现队列这一形态的数据结构?拿数组做个对比吧,数组只要一定义,那么它的长度就是固定的了,这貌似对于存放数据没有什么太大影响,但是如果说用户需要存放的数据量会时常发生变化,这时,数组的弊端就体现出来了,增加数据会发生数组的溢出。但是,若担心溢出,一味将数组定义的过于庞大,又会造成内存空间的浪费。这时候,很多人会联想到C++里有关动态数组的定义,然而,Java语言里是没有这一说的,这时队列的作用异常醒目。它很好的避免了数据溢出的发生以及内存空间浪费的问题。
二、队列作为一个众所周知的数据结构,很早就被封装成一种类,为什么我们还要自己写代码将它实现?这里引用胡哥的一句话“只有你经过自己的认真思考将某个数据结构的类型通过代码实现,并尽可能的完善其方法,才能在以后的编程实践中更好的运用这一类型”。确实,经过自己认真思考所编出来的程序代表了个人的最高水平,在自认为完成所有用户所需要的功能时不妨看看Queue类的源代码,找找和大师的差距,在对比中学会成长。
三、谈谈编程过程中的一些心得体会。首先,对于一个类,在实现方法的具体代码时,应先从用户的角度出发,在主函数里写好用户可能会用到的一切方法,这些方法的内容只需要两部分,一是传入的参数类型和个数,二是返回值的类型。只有在完成这些工作后才能开展下一步的工作,也就是具体的代码实现,这一编程的思想是非常重要的,我将在以后的编程中慢慢养成这一良好的习惯。再者,要满足用户的一切需求。拿函数和构造器来说吧,要考虑到用户在使用这个函数或构造器时,可能传入一个参数,两个参数或者不传参,这时,就需要进行函数和构造器的重载操作,对于每种可能都写出相应的代码。除此之外,要考虑到用户传入的数据的不确定性,引入C++里模板的编程思想。总之,一切为用户服务。
以上主要就是我对于队列知识所引发的一些思考,遣词造句尚显不成熟,希望阅读者多提宝贵意见,谢谢!
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
C语言_初始化队列+入队列+出队列+销毁队列
链队列题目:初始化队列+入队列+出队列+销毁队列
此文档是C#开发的消息队列系统,适用于消息队列入门与新手。 在Windows 7 上安装消息队列的步骤 打开“控制面板”。 单击“程序”,然后在“程序和功能”下, 单击“打开或关闭 Windows 功能”。 -或者-单击“经典...
java队列实现(顺序队列、链式队列、循环队列)
顺序队列和链式队列的实现 在计算机科学中,队列是一种重要的数据结构,广泛应用于多种领域。在本节中,我们将讨论顺序队列和链式队列的实现。 顺序队列 顺序队列是一种基于数组的队列实现方式。其主要特点是使用...
队列建立和队列的逆置 队列建立和队列的逆置 队列建立和队列的逆置
2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的含义做一个调整:front就指向队列的第一个元素,也就是说...
下发到队列所需要的jar,
使用顺序存储实现优先级队列,展示优先级队列和普通队列的区别之处。
(1) 复习课本中有关栈和队列的知识; (2) 用C语言完成算法和程序设计并上机调试通过; (3) 撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括时间复杂度、空间复杂度以及算法优化...
用C#实现任务队列,一个队列存放任务,线程互斥的从任务队列中取,放任务,任务队列为空,线程等待,直到有任务加入队列为止。
1. c++实现的无锁环形队列,注释详细,讲解了环形队列的实现原理和操作技巧 2. 在linux服务器下,可以自己编译,运行,也可以修改参数后做测试 3. 编译的命令如下:g++ -std=c++11 -o test main.cpp ring_buffer.cpp...
java中,常用的阻塞式队列Demo。包含:ArrayBlockingQueue、LinkedQueue、PriorityBlockingQueue
数据结构 队列部分 队列的删除、添加等相关操作
本实例实现了泛型顺序队列和泛型循环队列的基本操作,并通过界面演示了队列中元素的变化,最后结合栈实现了回文字符串的判断,通过本实例可以充分掌握C#队列数据结构。
多级反馈队列 队列实现
配套代码讲解:https://blog.csdn.net/songchuwang1868/article/details/90200251 ...同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列
包括:顺序队列基本运算,循环队列,链队列,环形顺序对列,渡口管理,停车场管理程序,病人看病模拟程序。
编写一个程序,实现链队列的各种基本运算,并在基础上完成以下功能: 1) 初始化链队列; 2) 判断链队列是否为空; 3) 依次进队元素a,b,c; 4) 出队一个元素,并输出该元素; 5) 输出链队列的长度; 6) 依次进队元素d,...
队列特性:先进先出(FIFO)——先进队列的元素先出队列。下面以一个简单的例子实现循环队列的操作。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言。