数据结构复习【第三章】 队列

(1)掌握队列的相关概念、特点和基本操作(入队、出队、判队空等)。

队列:只允许在表的一端进行插入,而在另一端删除元素的线性表。

特点:先进先出 (FIFO)

基本操作:

(2)掌握队列的顺序存储和链式存储的实现。

图解:

顺序存储:

入队:

{
   if ( ( rear+1)%queuesize =  = front )
      throw "上溢,无法入队";
   base[rear] = x;
  rear = (rear+1)%queuesize;

}

出队:

{
     if (front =  = rear)
        throw “下溢,不能出队”;
     x = base[front];

     front = (front+1)%queuesize;
   return x;
} 

链式存储(链队列是限制仅在表头删除和在表尾插入的单链表):

入队:

{ s = new Node<T>;
   s->data = x;
   s->next = rear->next;
   rear->next = s;
   rear = s;
} 

出队:

{
    if ( rear  =   =  front )
        throw"下溢";
    p  =  front->next;
    x  =  p->data;
   front->next  =  p->next;
   if ( p->next  =   =  NULL)
      rear  =  front;
   delete p;
   return x;
} 

(3)了解队列的一些典型应用。

原文地址:https://www.cnblogs.com/yg1024/p/9690575.html

时间: 2024-11-08 22:06:26

数据结构复习【第三章】 队列的相关文章

数据结构期末复习第三章栈和队列

第三章:栈和队列 栈的特性:后进先出(LIFO) 1.  输入序列为ABC,可以变为CBA时,经过的栈操作为( B )A. push, pop, push, pop, push, popB. push, push, push, pop, pop, popC. push, push, pop, pop, push, popD. push, pop, push, push, pop, pop 解析: ABC经过push,push,push操作后,从栈顶到栈底元素为CBA,经过pop,pop,pop出

复习第三章多态

第三章  多态 本章需要掌握的东西 掌握多态的优势和应用场合 答:多态的优势可以减少代码量,更加清晰明了.,应用场合为,一个事物需要做多种事情的时候需要用到多态. 2.掌握父类和子类之间的类型转换 答:父类引用转向子类为向上转型,自动类型转换.子类引用转向父类为向下类型转换,需要强制转换. 3.掌握instanceof运算符的使用 答:这个不是很实用了解一下就OK,我了解的是 这个可以判断类型转换的东西. 4.使用父类作为返回值实现多态 答:如果要返回多个子类的值,可以使用父类作为返回值,父类包

Java基础复习---第三章

第三章 面向对象 面向对象更加强调运用人类在日常的是为逻辑中采用的思想方法与原则 抽象.分类.继承.聚合.多态 面向对象与面向过程 ? 面向过程:强调的是功能行为 ? 面向过程:将功能封装进对象,强调具备了功能的对象 面向对象三大特征 ? 封装.继承.多态 OOP思想概述 类 :对现实世界事物的抽象定义 对象:类的实体(实例) ? ? ps. 类就像汽车设计图 对象就像实际的汽车 ? 类(class)和对象(object)是面向对象的核心概念.类是对现实世界事物的描述,类是抽象.概念上的定义.

数据结构之第三章之队列

1--队列的特点:队列是限定仅在表尾进行插入和表头进行删除操作的线性表,是先进先出的线性表. 1--循环队列 (1)循环队列的循环表示 typedef struct { int *base;//初始化的动态分配存储空间 int front;//头指针,若队列不为空,指向队列头元素 int rear;//尾指针,若队列不空,指向队列尾元素的下一个位置 }QUEUE; 若队列不空,尾指针始终指向队列尾元素的下一个位置,也即尾指针始终是"空闲的“,可以起到分隔作用. 2---入队 int enqueu

第三章 队列【数据结构】【链队列】

最近越来越感觉到c语言指针的强大~~ #include<stdio.h> #include<stdlib.h> #define QElemType int #define OK 1 #define ERROR 0 #define OVERFLOW 0 typedef int Status; //------------单链表------------队列的链式存储结构 typedef struct QNode { QElemType data; struct QNode *next;

浙大《数据结构》第三章:树(上)

注:本文使用的网课资源为中国大学MOOC https://www.icourse163.org/course/ZJU-93001 查找 查找:根据某个给定的关键字K,从集合R中找出关键字与K相同的记录. 静态查找:集合中的记录是固定的,没有插入删除的操作,只有查找: 动态查找:集合中记录是动态变化的,除查找,还可能发生插入和删除. 静态查找 方法1:顺序查找 int SequentialSearch( StaticTable *Tbl, ElementType K) { //在表Tbl[1]~T

数据结构之第三章之栈

栈和队列其实就是操作受限的队列. 1--栈的特点:栈是限定仅在表的另一端(栈顶)进行插入,删除操作的线性表,是后进先出的线性表. 2--顺序栈 (1)顺序栈的存储表示 typedef struct Node{ struct Node *base;//栈底指针,在栈构造之前和销毁之后,base的值为NULL struct Node *top;//这个是栈定指针,用以压栈的位置. int size;//当前已分配的存储单元数,以元素为单位 }NODE,*PNODE; (2) 压栈操作 int pus

数据结构复习_栈和队列,应用_括号匹配&amp;文件目录递归拷贝,

1.主题 2.学习视频和资料 视频    http://study.163.com/course/courseLearn.htm?courseId=555010#/learn/video?lessonId=701019&courseId=555010 http://study.163.com/course/courseLearn.htm?courseId=555010#/learn/video?lessonId=702024&courseId=555010 3.实现 数组或列表实现 4.应

数据结构复习之栈和队列

栈的概念 栈(stack)是限定只能在表尾进行插入和删除操作的线性表. 栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构. 允许插入和删除的一段称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈. 栈的插入操作,叫做进栈,也称压栈.入栈.(push) 栈的删除操作,叫做出栈,也有叫做弹栈.(pop) 栈的存储方式 栈的顺序存储结构 栈的链式存储结构 两种方式的比较: 时间性能:两种存储方式的入栈和出栈的时间复杂度都为O(1). 空间性

2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

2018-2019-20172329 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 <Java软件结构与数据结构>第五章-队列 一.概述 1.队列是什么? 队列是种线性集合,其元素从一端加入,从另一端删除:注:队列是按照先进先出的方式处理的.从队列中删除元素的次序,与放置元素的次序是一样的. 2.队列的构成 (1)方法: 操作 描述 enqueue 向队列末端添加一个元素 dequeue 从队列前段删除一个元素 first 考察队列前端的那个元素 isempty