1.array
特点:
从数组中取元素,时间复杂度为O(C)O(C)O(C)

总结:

2.linked list(链表)

注意pop(back)也是O(N), 因为要找倒数第二个元素
对于双向链表:


3.stack(栈)
从下到上
可以用来建立array 或者 linked list

LIFO的意思: last in, first out (后进先出)
4.queue(队列)
FIFO(先进先出)
队列可以与其他类型(数组、链表)等同步操作
每个队列的操作复杂度都是O(1)O(1)O(1)
5.trees(树)

树上的每一个节点都有以下元素:
- 内容(key)
- 左子树(node.left)
- 右子树(node.right)
树的遍历有两种:深度优先和广度优先(一层一层打印):
深度优先遍历又可以分为:
(pre-order,post-order and in-order)
广度优先可以用队列实施
数据结构基础:数组、链表、栈、队列与树的概览
本文是Coursera数据结构课程第一周的学习笔记,涵盖了数组、链表、栈、队列和树的基本概念和操作。数组取元素的时间复杂度为O(1),链表的pop(back)操作为O(N),双向链表、栈(LIFO)和队列(FIFO)的特点被详细阐述,队列的所有操作复杂度均为O(1)。此外,还介绍了树的结构及其两种遍历方式:深度优先和广度优先。
1288

被折叠的 条评论
为什么被折叠?



