链表队列学习
来源:互联网 发布:apache日志 json 编辑:程序博客网 时间:2024/06/10 01:32
#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct QNode{ ElemType data; QNode *next;}*QueuePtr;struct LinkQueue{ QueuePtr front,rear;};//初始化单链队列int InitQueue(LinkQueue &Q){<span style="white-space:pre"></span>Q.rear=(QueuePtr )malloc(sizeof(QNode));<span style="white-space:pre"></span>Q.front=Q.rear;<span style="white-space:pre"></span>Q.front->next=NULL; return 0;}//插入元素int EnQueue(LinkQueue &Q,ElemType e){ QueuePtr s; s=(QueuePtr)malloc(sizeof(QNode)); s->data=e; s->next=NULL; Q.rear->next=s; Q.rear=s; return 0;}//删除元素int DeQueue(LinkQueue &Q,ElemType &e){ QueuePtr p; p=Q.front->next; e=p->data; Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(p); return e;}//得到元素int GetQueue(LinkQueue Q,ElemType &e){ QueuePtr p; p=Q.front->next; while(p->next!=NULL){ e=p->data; p=p->next; return e; } e=p->data; return e;}//判空int EmptyQueue(LinkQueue Q){ if(Q.front==Q.rear) return 1; else return 0;}//队列长度int LengthQueue(LinkQueue Q){int i=0;QueuePtr p;p=Q.front;while(Q.rear!=p){ i++; p=p->next; } return i; }//清空单链队列int ClearQueue(LinkQueue &Q){ QueuePtr p,q; Q.rear=Q.front; p=Q.front->next; Q.front->next=NULL; while(p){ q=p; p=p->next; free(q); } return 0;}int main(){ LinkQueue Q; QueuePtr k; int e; InitQueue(Q); printf("%d",LengthQueue(Q)); printf("\n"); printf("%d",EmptyQueue(Q)); EnQueue(Q,1); EnQueue(Q,2); EnQueue(Q,3); printf("\n"); printf("%d",LengthQueue(Q)); printf("\n"); GetQueue(Q,e); printf("%d ",e); printf("\n"); DeQueue(Q,e); printf("%d ",e); printf("\n"); printf("%d",LengthQueue(Q)); printf("\n"); ClearQueue(Q); printf("%d ",EmptyQueue(Q)); printf("\n"); EnQueue(Q,1); EnQueue(Q,2); EnQueue(Q,3); for(k=Q.front->next;k!=NULL;k=k->next){<span style="white-space:pre"></span> printf("%d ",k->data); } return 0;}
0 0
- 链表队列学习
- 队列--链表队列
- 数据结构学习笔记 --- 队列(链队列)
- 数据结构学习笔记 --- 队列(链队列)
- 关于队列(数组队列,链表队列,循环队列)
- 通用链表/栈/队列-算法学习笔记十六
- 学习队列
- 队列学习
- 队列学习
- 队列学习
- 队列学习
- 数据结构学习笔记(8.循环队列与链队列)
- 特殊的线性表-队列-链队列
- 循环队列和链表队列代码
- 单链表、链表队列、循环队列、栈
- 数据结构学习之路4 队列的基本操作(顺序存储的循环队列+链表实现)
- 队列、优先队列的学习
- 数据结构学习之链队列c++实现
- 序
- LeetCode之旅(21)-Swap Nodes in Pairs
- 提高孩子速度的五招
- idea 检出 maven工程下源文件目录main/src/java问题
- 双目测距原理
- 链表队列学习
- Fedora修复grub2启动项grub rescue
- Linux系统信息查看命令
- 如何做到 jQuery-free?
- 回调的原理、实现与应用
- Linux的启动过程: 关于inittab的解读(以RedHat版本为例)
- java equals 比较两个字符串,总是返回false
- Iscroll下拉刷新问题集合、click点击事件
- 正则表达式30分钟入门教程