已采纳回答 / qq_谷是盛满泪的眼_0
仅仅将元素赋值为0,0也是一个int 数值占据内存空间,并未起到清空队列的作用。清空队列的时候已经设置长度为零,再次插入数值的时候长度重新从零计数,插入5个长度增到5,不会出现再次读取的时候长度还是10 的情况
2017-08-22
已采纳回答 / ForLemon
假设一种情况,一个m_iQueueCapacity=4的队列,经过一系列入队和出对操作,此时m_iHead=3,而m_tail=2,此时在3,0,1位置都有元素。 此时m_iQueueLen=3。如果是循环是for (int i = m_iHead; i < m_iQueueLen ; i++),循环次数m_iQueueLen-m_iHead=0,很明显循环不能执行。因为我们要循环的次数是m_iQueueLen,也就是3。所以循环次数应该是(m_iQueueLen + m_iHead)...
2017-06-27
已采纳回答 / 慕九州2325515
并不是c++ 使用const声明表示不可一被修改,好像有点像 Java 中final也是不可以被修改,Java中static也是静态变量的意思,static类型可以被修改,那几个成员函数中之所以加了const修饰,是为了保护对象的数据不会被修改,在函数中只能读取对象数据并不可以修改。
2017-04-19
已采纳回答 / qq_超人_18
系统按顺序应该先删除customer的内存,然后再是p的内存。而customer的内存是栈实例化的,所以只有执行了return 0;后才会删除。使用了delete p;会导致系统先删除queue的内存,顺序不对,所以执行出现问题。所以不能加delete p;在结束整个程序后就会自动删除。我个人见解,删除内存主要运用在一个程序没有完结但一个类或函数已经完结的情况下,可以减少内存泄漏。如果整个程序都结束,就不存在内存泄漏的问题了。
2017-04-15
已采纳回答 / yasinSun
在 DeQueue() 出队 函数部分有问题,判断条件应该是写错了,应该是 if (Queueempty()) , 而不是if (Queuefull())
2017-04-03
已采纳回答 / 黄亚彬
因为必须保证这空、满、长度是一个常量(只读),否则的话调用者能修改这些值,导致整个程序错乱,比如我们初始化一个长度为3的环形队列,然后插入了3条数据(此时长度应该为3),如果没有const关键字,我们可以手动去修改队列的长度,这样整个环形队列就错乱了,const的作用就是保证那些只读的属性,不能被认为修改,只能通过代码逻辑修改回答完毕
2017-03-17
已采纳回答 / Jathy
数据结构只是编程的一种编程设计,用什么语言都可以,所以要用什么软件就要根据用什么语言。比如说Java用Eclipse;C++或C用VC或DevC++等软件;Eclipse也可以进行C++/C编程希望能帮到你^.^
2016-12-18
已采纳回答 / Ephraim
这个函数做到了两个功能让首元素出队获得出队元素的值出队这个好理解,第二个获得首元素的值是我们加上去的,在实际应用中,目的是为了知道它出队的元素值是多少。当然写法有很多种,也可以以返回值的形式带出,比如int DeQueue(void) {int element =m-iHead;.... //头元素出队return element;}这就像栈pop的时候,我们把栈中出栈的元素存到一个变量里,我们也会采取这种方式来获得出栈元素,具体要不要这个功能,看我们了
2016-12-15