数据结构与算法中,队列、栈和散列表的总结要点有哪些?

2026-05-17 09:250阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3830个文字,预计阅读时间需要16分钟。

1. 队列 + 队列是一种FIFO(先进先出)的数据结构,具有两个出口,只能在一端进行插入(队尾插入)和在另一端进行删除(队首删除)操作,没有遍历行为。

1. 队列

  队列是一种FIFO的数据结构,它有两个出口,限定只能在表的一端进行插入(队尾插入)和在另一端进行删除(队头删除)操作,同样的它也没有遍历行为。

  由于在队列的顺序存储中无法判断队列满的条件,一般地如果用数组实现队列,循环队列是必须的。一般设置一个队头指针front和队尾指针rear,初始化两变量均为0。为区分队空和队满,一般牺牲一个单元来区分队空和队满,这是种较为普遍的做法,约定以front在rear的下一个位置为队满标志(front指向队头元素的上一个元素,rear指向队尾元素)。如下为其重要操作:

  • 队空标志:front==rear; 队满标志:(rear+1)%MAXSIZE==front
  • 入队操作:rear=(rear+1)%MAXSIZE; queue[rear]=x
  • 出队操作:front=(front+1)%MAXSIZE; x=queue[front];

  在进行栈或队列操作时使用内存复制memcpy的行为,并非原始的数据地址,如果把其应用在二叉树的遍历算法中是存在bug的。

  队列应用在在层次遍历、计算机系统的资源请求中,它的特点就是在进行当前层的处理时就对下一层数据进行预处理。

阅读全文

本文共计3830个文字,预计阅读时间需要16分钟。

1. 队列 + 队列是一种FIFO(先进先出)的数据结构,具有两个出口,只能在一端进行插入(队尾插入)和在另一端进行删除(队首删除)操作,没有遍历行为。

1. 队列

  队列是一种FIFO的数据结构,它有两个出口,限定只能在表的一端进行插入(队尾插入)和在另一端进行删除(队头删除)操作,同样的它也没有遍历行为。

  由于在队列的顺序存储中无法判断队列满的条件,一般地如果用数组实现队列,循环队列是必须的。一般设置一个队头指针front和队尾指针rear,初始化两变量均为0。为区分队空和队满,一般牺牲一个单元来区分队空和队满,这是种较为普遍的做法,约定以front在rear的下一个位置为队满标志(front指向队头元素的上一个元素,rear指向队尾元素)。如下为其重要操作:

  • 队空标志:front==rear; 队满标志:(rear+1)%MAXSIZE==front
  • 入队操作:rear=(rear+1)%MAXSIZE; queue[rear]=x
  • 出队操作:front=(front+1)%MAXSIZE; x=queue[front];

  在进行栈或队列操作时使用内存复制memcpy的行为,并非原始的数据地址,如果把其应用在二叉树的遍历算法中是存在bug的。

  队列应用在在层次遍历、计算机系统的资源请求中,它的特点就是在进行当前层的处理时就对下一层数据进行预处理。

阅读全文