数据结构——第二讲、线性结构(8)
来源:互联网 发布:怎么购买域名 编辑:程序博客网 时间:2024/05/17 02:16
2.3 队列
插入(入队AddQ)和删除(出队DeleteQ)位于队列两头。
队列的抽象数据类型描述
类型名称:队列(Queue)
数据对象集:一个有0个或多个元素的又穷线性表。
操作集:
Queue CreateQueue(int MaxSize);int IsFull(Queue Q, int MaxSize);void AddQ(Queue Q, ElementType x);int IsEmpty(Queue Q);ElementTpye DeleteQ(Queue Q);
队列的顺序存储实现
#define MaxSize<队列的最大个数>typedef struct QNode *Queue;struct QNode{ ElementType Data[MaxSize]; front;//队列头 rear;//队列尾};
入队
void AddQ(Queue Q, ElementType x){ if((Q->rear+1)%MaxSize == Q->front){ printf("队列满"); return; } Q->rear = (Q->rear+1)%MaxSize; Q->Data[Q->rear] = x;}
出队
ElementType DeleteQ(Queue Q){ if(Q->rear == Q->front){ printf("队列空"); return NULL; } Q->front = (Q->front+1)%MaxSize; return Q->Data[Q->front];}
队列的链式存储
front设在链表头,rear设在链表尾
typedef struct Node *Liststruct Node{ ElementType Data; List NEXT;};struct QNode{ List front; List rear;};typedef struct QNode *Queue//一个QNode类型的指针,不同的指针表示不同的队列。
入队
void AddQ(Queue Q, ElementType x){ List s = (List)malloc(sizeof(struct Node)); s->Data = x; s->NEXT = NULL; if(Q->rear == NULL){ Q->rear = s; return; } Q->rear->NEXT = s; Q->rear = s; return;}
出队
ElementType DeleteQ(Queue Q){ if(Q->front == NULL){ printf("栈空!"); return NULL; } //如果只有一个元素,就把rear和front都置为NULL if(Q->rear == Q->front)Q->rear = NULL; List s = Q->front; ElementType x = s->Data; //如果只有一个元素那么s的NEXT就是NULL Q->front = s->NEXT; free(s); return x;}
阅读全文
0 0
- 数据结构——第二讲、线性结构(8)
- 数据结构——第二讲、线性结构(1)
- 数据结构——第二讲、线性结构(2)
- 数据结构——第二讲、线性结构(3)
- 数据结构——第二讲、线性结构(4)
- 数据结构——第二讲、线性结构(5)
- 数据结构——第二讲、线性结构(6)
- 数据结构——第二讲、线性结构(7)
- 第二讲 线性结构
- 陈越、何钦铭《数据结构》第二讲线性结构 笔记
- 网易云课堂-数据结构-第二讲-线性结构
- 网易云课堂-数据结构-第二讲-线性结构
- [数据结构]线性结构——线性表
- 数据结构——线性结构
- 【数据结构】数据结构与算法(一)——线性结构
- 数据结构(陈越)PAT练习题 第二周:线性结构
- 【ShawnZhang】带你看数据结构——第二课:线性表顺序结构
- 《数据结构》第二章线性结构 学习指南
- cmd黑窗口查看端口占用、相应进程、杀死进程的命令
- 使用线性回归拟合平面最佳直线及预测之Python+sklearn实现
- Spring4-@Enable** 注解的实现原理
- 面试题:this和super关键字分别代表什么?以及他们各自使用场景和作用?
- 表单用post方法提交数据时乱码问题(转)
- 数据结构——第二讲、线性结构(8)
- 快速去阴影--Fast Shadow Detection from a Single Image Using a Patched Convolutional Neural Network
- 为什么你该开始学习编程了?
- Microsoft visual studio 2015已停止工作最全解决办法
- 大新闻 波士顿动力和Schaft && 软银
- 机器人也会双手互搏了
- 吸管除了喝饮料还能干嘛?做机器人呀~
- 业界 | 想要创立一个机器人公司?机器人能提供服务比机器人本身更重要
- 不畏艰险,它会走到任何你想去的地方