队列
来源:互联网 发布:linux加载mt7601u驱动 编辑:程序博客网 时间:2024/06/16 11:22
队列
基本定义
只能在对头插入和在队尾删除的线性表
代码:
#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20typedef int Status;typedef int QElemType/*循环队列*/typedef struct _SqQueue{QElemType data[MAXSIZE];int front;int rear;} SqQueue;/*初始化队列*/Status InitQueue(SqQueue *q){q->front=0;q->rear=0;return OK;}/*求队列的长度*/int QueueLength(SqQueue *q){return (q->rear-q->front+MAXSIZE)%MAXSIZE;}/*进队*/Status EnQueue(SqQueue *q,QElemType e){/*队满*/if((q->rear+1)%MAXSIZE==q->front){return ERROR;}q->data[q->rear]=e;q->rear=(q->rear+1)%MAXSIZE;return OK;}/*出队*/Status DeQueue(SqQueue *q,QElemType *e){/*队空*/if(q->rear==q->front){return ERROR;}*e=q->data[q->front];q->front=(q->front+1)%MAXSIZE;return OK;}/**链队列**//*节点*/typedef struct _QNode{QElemType data;struct _QNode *next;}QNode,*QNodePtr;typedef struct _LinkQueue{QNodePtr front,rear;}LinkQueue;/*进队*/Status EnQueue(LinkQueue *q,QElemType e){QNodePtr p;p=(QNodePtr)malloc(sizeof(QNode));p->data=e;p->next=NULL;q->rear->next=p;q->rear=p;return OK;}/*出队*/Status DeQueue(LinkQueue *q,QElemType *e){if(q->rear==q->front){return ERROR;}QNodePtr p;p=q->front->next;*e=p->data;if(p==q->rear){q->front->next=NULL;q->rear=q->front;}else{q->front->next=p->next;}free(q);return OK;}
0 0
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 泰安地图
- FileZilla以root用户登录Linux
- linux系统管理命令-进程与作业管理
- JFrame中setDefaultCloseOperation的参数含义
- Sublime Text 3为新的关键字实现语法高亮
- 队列
- 整形数的转换(32位)
- Android中dp和px之间进行转换
- 在Windows8中让CMD默认以管理员身份运行
- springmvc + hibernate +mysql 通过@Transactional来开启事务
- 网易云课堂java程序设计(第四周编程作业)
- Linux中shell关闭后,nohup让程序依然在后台运行
- Linux如何开启SSH服务
- ROS应用2 2014年12月30日