C语言实现链队列

  

记录一下C语言实现的链队列代码,供大家参考,具体内容如下

        # include   # include   # include   typedef int ElemType;//链队列的结点定义   typedef结构节点{   ElemType val;   结构节点*下;   }QueueNode;//链队列的定义,包含队头指针和队尾指针   typedef struct队列{   QueueNode *前;   QueueNode *后方;   }LinkedQueue;//初始化队列   LinkedQueue * initQueue () {   LinkedQueue *队列=(LinkedQueue *) malloc (sizeof (LinkedQueue));   队列→前=(QueueNode *) malloc (sizeof (QueueNode));   队列→→前下=零;   队列→后方=队列→前线;   }//元素入队   空队列(LinkedQueue *队列,ElemType elem) {   QueueNode *节点=(QueueNode *) malloc (sizeof (QueueNode));   节点→val=elem;   节点→下=零;   队列→后→下=节点;   队列→后方=节点;   }//队列是否为空   bool isQueueEmpty (LinkedQueue *队列){   返回队列→==队列前面→后方;   }//元素出队   ElemType出列(LinkedQueue *队列){   如果(! isQueueEmpty(队列)){   QueueNode * p=队列→前线;   队列→前=p→下;   ElemType e=队列→→面前val;   自由(p);   返回e;   }   返回NULL;   }      int main ()   {   LinkedQueue *队列=initQueue ();   int我;   (我=0;我& lt;20;我+ +){   排队(队列,我);   }   而(! isQueueEmpty(队列)){   printf("出列:% d \ n ",出列(队列));   }   返回0;   }      

需要注意的是:

  
      <李>初始化队列时,队头和队尾都指向同一个结点(头结点,不存储数据);李   <李>判断队列是否为空,即判断队头指针和队尾指针是否相同,李   <李>队头元素是当前面前指针下结的点中的值   
  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

C语言实现链队列