(文章目录) 什么是队列 队列跟栈一样,也是一种操作受限的线性表数据结构。不过,队列是先进者先出。 队列和栈的区别 栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素。 队列的概念很好理解,基本操作也很容易掌握。作为一种
(文章目录) 什么是栈 后进者先出,先进者后出,这就是典型的“栈”结构。 就像一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。 从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。 如何实现一个“栈”? 定长顺序栈 栈主要包含两个操作,入栈和出栈,也就是在栈顶插入一个数
(文章目录) 链表和数组的区别 相比数组,链表是一种稍微复杂一点的数据结构。对于初学者来说,掌握起来也要比数组稍难一些。这两个非常基础、非常常用的数据结构,我们常常会放到一块儿来比较。所以我们先来看,这两者有什么区别。 为了直观地对比,我们画图示例。从图中我们看到,数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个 100MB 大小的数组,当内存中没有连续的、足够大的
(文章目录) 什么是数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 这个定义里有几个关键词,理解了这几个关键词,我想你就能彻底掌握数组的概念了。 线性表 顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。 而与它相对立的概念是非线性表,比如
(文章目录) 什么是大 O 复杂度表示法 算法的执行效率,粗略地讲,就是算法代码执行的时间。但是,如何在不运行代码的情况下,用“肉眼”得到一段代码的执行时间呢? 这里有段非常简单的代码,求 1,2,3...n 的累加和。现在,我就带你一块来估算一下这段代码的执行时间。 int cal(int n) { int sum = 0; int i = 1; for (; i
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号