【数据结构基础】队列的链式存储结构
来源:互联网 发布:手机的编程游戏平台 编辑:程序博客网 时间:2024/05/18 02:43
队列:是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
链队列的结构:
typedef int QElemType; /* 这里假设为int */typedef struct QNode; /* 结点结构 */{ QElemType data; struct QNode *next;} QNode, *QueuePtr;typedef struct /* 队列的链表结构 */{ QueuePtr front, rear; /* 队头,队尾指针 */}LinkQueue;
链队列的入队操作:
/* 插入元素e为Q的新的队尾元素 */Status EnQueue( LinkQueue *Q, QElemType e ){ QueuePtr s = ( QueuePtr )malloc( sizeof( QNode ) ); if( !s ) /* 存储分配失败 */ exit( OVERFLOW ); s->data = e; s->next = NULL; Q->rear->next = s; /* 把拥有元素e新结点s赋值给原队尾结点的后继 */ Q->rear = s; /* 把当前的s设置为队尾结点,rear指向s */ return OK;}
链队列的出队操作:
/* 若队列不为空,删除Q的队头元素,用e返回其值,并返回OK,否则返回ERROR */Status DeQueue( LinkQueue *Q, QElemType *e ){ QueuePtr p; if( Q->front == Q->rear ) return ERROR; p = Q->front->rear; /* 将欲删除的队头结点暂存给p */ *e = p->data; /* 将欲删除的队头结点的值赋值给e */ Q->front->next = p->next; /* 将原队头结点后继p->next赋值给头结点后继 */ if( Q->rear == p ) /* 若队头是队尾,则删除后将rear指向头结点 */ Q->rear = Q->front; free( p ); return OK;}
0 0
- 【数据结构基础】队列的链式存储结构
- 数据结构(队列):队列的链式存储结构
- 数据结构:队列的链式存储结构
- 数据结构:队列的链式存储结构
- 【数据结构基础】栈的链式存储结构
- 数据结构:单链队列--队列的链式存储结构
- 数据结构六—队列的链式存储结构
- Python 数据结构 之 队列 的顺序、链式存储结构
- 数据结构——队列的链式存储结构以及实现
- java 数据结构之 链式存储结构 队列
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- Tomcat下Spring MVC配置
- hadoop SequenceFile 读取例程注释
- 简述WebService的使用
- java静态类声明--java类可以声明为static吗
- PLSQL_统计信息系列1_统计信息的概念和重要性(概念)
- 【数据结构基础】队列的链式存储结构
- Linux设备模型
- 任意数进制转换
- VMware虚拟机中安装Linux系统步骤(Redhat6.5)
- 红橙黄绿蓝靛紫-RGB-十六进制
- hdu 5135 Little Zu Chongzhi's Triangles(贪心)
- tomcat目录结构
- 扫描目录文件
- 关于css3 transition transform animation属性