在读SICP的时候,我就接触了里面的基本数据结构序对(Pairs),那时还没有学习数据结构,没想到就是链表。链表是一种递归的数据结构,Scheme
是一种函数式编程语言,Scheme
程序随处可见递归,用它来做基本的数据结构再合适不过了。本文介绍的链表操作多数来源于LeetCode上链表专题上的算法题。
在读SICP的时候,我就接触了里面的基本数据结构序对(Pairs),那时还没有学习数据结构,没想到就是链表。链表是一种递归的数据结构,Scheme
是一种函数式编程语言,Scheme
程序随处可见递归,用它来做基本的数据结构再合适不过了。本文介绍的链表操作多数来源于LeetCode上链表专题上的算法题。
我们知道,队列是一种FIFO的线性表,只允许在后端进行插入操作,在前端进行删除操作。由名字可看出,优先队列(Priority queue)的特殊之处就在“优先”二字,支持优先处理优先级高的元素,这样的元素通常是最大的或者是最小的。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务,优先级相同的元素按照其在优先队列中的顺序得到服务。