本文实例为大家分享了C语言实现链队列的具体代码,供大家参考,具体内容如下
# include & lt; stdio.h>/*队列的结构体*/typedef int数据类型; #定义NODE_LEN sizeof(节点)/*队列的节点*/typedef struct stNode { 数据类型数据; struct stNode *下; }节点;/*队列*/typedef struct stQueue { 节点*头;//队列的头 节点*尾巴;//队列的尾 }队列;/*初始化队列,不带头结点*/int initQueue(队列* INQueue) { INQueue→头=零; INQueue→尾=零; 返回0; }/*从队尾插入一个元素*/数据类型InData int排队(队列* InQueue) { 节点* pNewNode=(节点*)malloc (NODE_LEN); 如果(pNewNode==NULL) { 返回1; } pNewNode→数据=https://www.yisu.com/zixun/InData; pNewNode下一步->=零;/*判断,现在队列里面有没有节点*/如果(InQueue ->==NULL) { InQueue主管->=pNewNode; 尾巴InQueue ->=pNewNode; } 其他的 { 尾巴InQueue -> ->下一个=pNewNode; 尾巴InQueue ->=pNewNode; } 返回0; }/*遍历该队列*/int visitQueue(队列InQueue) { 队列* pstTemp=&InQueue;/*判断队列是否为空队列*/如果(pstTemp ->==NULL) { printf (" visitQueue:这个队列是空\ n”); 返回1; }/*遍历该队列中的所有元素*/而(主管pstTemp→→下一个!=NULL) { printf (" % d”, pstTemp→主管→数据); pstTemp→头=pstTemp→→主管下; } printf (" % d \ n”, pstTemp→主管→数据); 返回0; }/*出队列*/int delQueue(队列* InQueue,数据类型* OutData) { 如果(InQueue→头==NULL) { printf (" delQueue:这个队列是空\ n”); 返回1; } * OutData=https://www.yisu.com/zixun/InQueue->主管->数据; 节点* pstTemp=InQueue ->头; InQueue ->交头接耳=InQueue -> -> next; 删除pstTemp; 返回0; }/*判断队列是否是空队列*/int isEmptyQueue(队列InQueue) { 如果(InQueue。头==NULL) { 返回0;//是空队列 } 返回1;//不是空队列 } int main () {/*创建一个队列*/队列的队列; 数据类型数据; initQueue(队列);/*入队列*/排队(队列,12); 排队(队列,11); 排队(队列,2); visitQueue(队列);/*出队列*/delQueue(队列,平差); visitQueue(队列); printf (“data=https://www.yisu.com/zixun/%d/n”、数据); visitQueue(队列); 如果(0==isEmptyQueue(队列)) { printf("这是空队列\ n "); } 其他的 { printf("这不是空队列\ n”); } 返回0; } >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
C语言实现链队列代码