当前位置:   article > 正文

C语言:数据结构之队列_请设计void destroyqueue(seqqueue *q)函数。 该函数销毁循环顺序队列q的

请设计void destroyqueue(seqqueue *q)函数。 该函数销毁循环顺序队列q的数据。

队列:生活中也会经常遇到的场景。即只允许在一端进行数据的插入操作,另一端进行数据的删除操作的特殊线性表。
插入的一端一般为队尾(即为入队);删除的一端则为队首(即出队)。具有 先进先出(FIFO)的特性。
在这儿,我写了2种队列:顺序队和链式队。
先来说说顺序队:出队的方法:①队头不变,出队后所有元素向前移动;②不移动元素,每删除一个元素,队头就向后移动一个元素。
①队头位置不变:如下图所示:
缺点:如果元素数量很多时,就要大批大批的移动数据。
②队头位置不变:
缺点:删除元素后,原来对头的位置就会浪费。并且再有元素入队时,就会发生溢出现象。
结合这两种删除所带来的麻烦,所以就有了循环队列。即不会大量的移动元素,也不会发生溢出现象,不会浪费空间。
如下图所示:判队空
缺点:虽然循环队列对于前面的两种有所提高,但是当插入的元素大于最大的队列个数是依然会溢出。
下面是顺序队的代码实现:

  1. #pragma once
  2. #define TEST_HEADER printf("\n==================%s================\n",__FUNCTION__)
  3. typedef char QueueType;
  4. #define MaxQueu
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/646357
推荐阅读
相关标签
  

闽ICP备14008679号