第四周 栈和队列

第一讲 栈的定义
  • 栈的定义
    栈是一种只能在一端进行插入或删除操作的线性表。
    • 允许进行插入、删除操作的一端称为栈顶。
    • 表的另一端称为栈底。
    • 当栈中没有数据元素时,称为空栈。
    • 栈的插入操作通常称为进栈或入栈。
    • 栈的删除操作通常称为退栈或出栈。
  • 栈的主演特点是“后进先出”,即后进栈的元素先出栈。栈也称为后进先出表。
  • 栈中元素逻辑关系与线性表的相同,栈可以采用与线性表相同的存储结构。
  • 初始化栈:
    初始化栈
第二讲 链栈

初始化链栈

  • 链栈:采用链表存储的栈。
  • 链栈的4要素:
    • 栈空条件:s->next=NULL
    • 栈满条件:不考虑
    • 进栈e操作:将包含e的节点插入到头节点之后
    • 退栈操作:取出头节点之后节点的元素并删除
  • 初始化栈
第三讲 队列
  • 队列的定义

    队列简称队,它也是一种运算受限的线性表。

    队列只能选取一个端点进行插入操作,另一个端点进行删除操作。

  • 队列的几个概念

    • 进行插入的一端称作队尾
    • 进行删除的一端称作队首或队头
    • 向队列插入新元素称为进队或入队
    • 向队列删除元素称为出队或离队
  • 顺序队的4要素

    • 队空条件:front=rear
    • 队满条件:rear=MaxSize-1
    • 元素e进队:rear++;data[rear]=e
    • 元素e出队:front++;e=data[front]
  • 初始化队列
    初始化顺序队

  • 队列的主要特点是先进先出,所以又把队列称为先进先出表。

  • 环形队列

    • 假溢出:尾指针指向队尾,头指针指向队中,根据rear=MaxSize-1判断队满。
    • 把数组的前端和后端连接起来,形成一个环形的顺序表,即把存储队列元素的表从逻辑上看成一个环,称为环形队列或循环队列
    • 实现方式:
      • rear=(rear+1)%MaxSize
      • front=(front+1)%MaxSize
    • 队空条件:rear=front
    • 队满条件:(rear+1)%MaxSize=front
    • 进队操作:rear=(rear+1)%MaxSize;将e放在rear处
    • 出队操作:front=(front+1)%MaxSize;取出front处元素3
第四讲 链队
  • 链队定义
    采用链表存储的队列称为链队,采用不带头结点的单链表实现。
    链队

    • 链队组成
      • 存储队列元素的单链表节点
      • 指向队头和队尾指针的链队头节点
  • 链队的4要素:

    • 队空条件:front=rear=NULL
    • 队满条件:不考虑
    • 进队e操作:将包含e的节点插入到单链表表尾
    • 出队操作:删除单链表表首数据节点
  • 初始化队列:
    初始化队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值