数据结构与算法中,队列、栈和散列表的总结要点有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计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的。
队列应用在在层次遍历、计算机系统的资源请求中,它的特点就是在进行当前层的处理时就对下一层数据进行预处理。

