今天又回顾了原来队列那节,自己重新把代码敲了一遍,但是还是犯了一些小小的错误,但是还是收获了,对队列有了近一步的认识。在此几下仅仅为了更好的理解。
错误分析:
这个错误真的是犯得太幼稚了,而且还犯了两次。在需要用到循环语句的地方,我这样用:
然后我打印了输出队列的长度:
结果是:
后来自己就把代码重新检验了一遍发现也没有什么问题,突然才想到原来if语句只是七判断的作用,但这里的真正的用意在于循环下去直到找到最后一个为空的为止。如果用if语句,这块代码只能执行一次,count只能加一次,所以长度为1。而我们常用的循环语句主要有三类:while语句,do-while语句和for语句。这里就不再详细介绍了,因为用法很简单。所以把代码中的if改为while时,输出结果为:
这样问题就解决了!!!
在队列这一块中,主要的是抓住队列的特点。队列是通过前后连接的关系来解决添加、删除、插入数据等的方法。但是再这个过程中,有涉及到需要在队列中找到相对应的下标,这个的方法是这样的:比如说在插入数据的方法中:
//插入元素 public void insert(int index,Object obj){ if(index < 0 || index >= size()){//先判断index是否越界 throw new ArrayIndexOutOfBoundsException("超出范围:"+size()); } Node node = new Node(); node.setData(obj); if(root == null){ root = node; lastNode = node; }else{ if(index == 0){ node.setNext(root); node = root; return; } //找到对应的index下标 int count =0; Node indexNode = root; Node prevNode = root; while(index != count){ prevNode = indexNode; count ++; indexNode = indexNode.getNext(); } node.setNext(indexNode); prevNode.setNext(node); } }
所以解决这个问题的话,队列的实现就像用数组去实现是一样的简单。虽然写的有点简单,有点幼稚,算是对这里的深入理解吧。
相关推荐
在计算机科学中,数据结构是组织和管理大量数据...通过对这两个实现的比较和分析,不仅可以巩固队列数据结构的理解,还可以加深对C语言指针和内存管理的认识。同时,这也为扩展到其他数据结构和算法的学习奠定了基础。
在实际操作STM32CubeMX和FreeRTOS时,需要对项目中每个步骤的配置有清晰的认识,并理解在代码层面上这些配置是如何被实现的。例如,对于任务优先级的理解,一个任务的优先级决定了它相对于其他任务的执行顺序;对于...
杨辉三角,又称帕斯卡三角,是一种在数学中广泛使用的几何序列,它不仅与组合数学密切相关,还在二项式定理、...这种方法不仅可以帮助我们理解队列的作用,还能加深对杨辉三角性质的认识,为后续的学习和开发提供启示。
### 关于栈、队列和数组的初步认识 本文旨在为初学者提供关于栈、队列和数组的基础知识,特别是针对那些对C++/C语言有一定了解的学习者。通过本篇内容,读者能够建立起对这些基本数据结构的概念,并掌握它们的基本...
#### 二、认识BlockingQueue **1. 阻塞队列概念** - **定义**:阻塞队列是一种特殊的队列,除了具有队列的基本特性外,还提供了额外的阻塞行为,即当队列空时,从队列中获取元素的操作将会阻塞,等待队列变得非空...
博文c 中老师详细介绍了几种消息队列的 业务场景,是我所看的所有业务场景描述中最为详细,清晰的,结合博文a 老师的整体思路,对消息队列的实现上有了较为清晰的认识。 整体思路在博文a 中老师已经介绍,及依靠 ...
《数据结构 严蔚敏 C语言版 链队列表示与实现》是关于计算机科学中数据结构领域的一本经典教材。...通过《数据结构 严蔚敏 C语言版》的学习,读者将对链队列有深入的认识,并能够在实际项目中灵活运用。
总的来说,合工大的这次数据结构实验将带你深入理解队列的原理和实现,通过实践加深对这一基础数据结构的认识,从而更好地应对复杂计算问题的挑战。在实验过程中,你不仅会学习到理论知识,还会提升编程能力和问题...
简单实现消息队列,能够做到创建消息队列,获取消息队列,对于像我一样的萌新,可以快速的学习Socket,并对他的应用有一定的认识,方便快速上手消息队列,本人技术有限,可能不够完善,欢迎留言补充,欢迎大佬指教。
数据结构 栈和队列 教你重新认识栈和队列
实验目的 通过模拟多级反馈队列算法的调度过程,加深对处理机调度算法的理解。 实验内容 编写一个C语言程序,模拟多级反馈队列调度算法。 ... 经过实验,加深了我对多级反馈队列调度算法的认识。
通过这些规范动作的学习和实践,不仅能够培养军人的纪律性和协调性,还能够加深军人对军事礼仪的认识,从而在更高层次上提升军人的整体素质和战斗力。这份资料的应用,无疑将使每一名军人在队列中更加出色,为实现...
在操作系统领域,进程管理和调度是核心内容...通过理论学习和实践操作,不仅可以提升我们对操作系统原理的认识,也有助于提高解决实际问题的能力,这对于从事IT行业,尤其是系统开发和运维人员来说,是非常宝贵的技能。
在数据结构教学中,队列作为基础知识点占据着举足轻重的地位。队列不仅是一种重要的数据结构,同时也是理解...因此,在数据结构的学习过程中,我们应当给予队列足够的重视,并通过不断的实践,深化对队列的认识和应用。
通过编写和测试代码,对队列的逻辑和链式结构有了更直观的认识,同时,菜单驱动的交互方式也增强了程序的实用性和用户体验。这样的实践对于深化对数据结构的理解,尤其是队列这种基础数据结构的理解,是至关重要的。...
操作系统实验中的多级反馈队列调度算法是一种优化进程调度的重要策略,旨在提高系统...在心得体会部分,学生可以分享自己在实现过程中遇到的问题、解决方法以及对调度算法的新认识,以此深化理论学习与实践操作的结合。
操作系统是计算机科学中的核心课程,而多级反馈队列(Multi-Level Feedback Queue, MLFQ)是一种高效且灵活的进程调度...此外,比较不同调度算法的效率可以帮助学生认识到每种算法的优缺点,为未来的系统优化提供基础。
通过这次实验,不仅加深了对循环队列数据结构的理解,还强化了对线性表和链式存储结构的认识。特别是使用链式存储结构实现循环队列,通过头指针和尾指针管理单向链表,这种设计思路提高了代码的可读性和效率。此外,...
首先,我们要认识到两位数乘以两位数的笔算,是建立在个位数乘法基础上的延伸。学生在学习初期,往往对于个位与十位的分别乘法以及进位的处理感到困惑。为了让学生更直观地理解这一过程,教师应当在教学中强调竖式...