摘要:
一、概述双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构。双端队列也拥有两端:队首(front)、队尾(rear),但与队列不同的是,插入操作在两端(队首和队尾)都可以进行,删除操作也一样。二、ADT双端队列ADT(抽象数据类型)一般提供以下接口:Deque() 创建双端队列addFront(item) 向队首插入项addRear(item) 向队尾插入项removeFront() 返回队首的项,并从双端队列中删除该项removeRear() 返回队尾的项,并从双端队列中删除该项empty() 判断双端队列是否为空size() 返回双端队列中 阅读全文
摘要:
一、概述队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操作在队首(front)进行。二、ADT队列ADT(抽象数据类型)一般提供以下接口:Queue() 创建队列enqueue(item) 向队尾插入项dequeue() 返回队首的项,并从队列中删除该项empty() 判断队列是否为空size() 返回队列中项的个数队列操作的示意图如下:三、Python实现使用Python的内建类型list列表,可以很方便地实现队列ADT:#!/usr/bin/env python# -*- coding: utf-8 -*-class Queue: d... 阅读全文
摘要:
一、概述堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行。二、ADT堆栈ADT(抽象数据类型)一般提供以下接口:Stack() 创建堆栈push(item) 向栈顶插入项pop() 返回栈顶的项,并从堆栈中删除该项clear() 清空堆栈empty() 判断堆栈是否为空size() 返回堆栈中项的个数top() 返回栈顶的项堆栈操作的示意图如下:三、Python实现使用Python的内建类型list列表,可以很方便地实现堆栈ADT:#!/usr/bin/env python# -*- coding: utf-8 -*-class St 阅读全文
摘要:
一、概述用Python实现的数据结构与算法 涵盖了常用的数据结构与算法(全部由Python语言实现),是 Problem Solving with Algorithms and Data Structures using Python(简写为PSADSP)的读书笔记。PSADSP 对经典的数据结构与算法进行了全面而细致地讲解,有兴趣的读者可以直接阅读该书。根据个人的学习进度,本文当前只摘取和总结了书中的部分内容,后续会逐步更新。二、目录基本数据结构用Python实现的数据结构与算法:堆栈用Python实现的数据结构与算法:队列用Python实现的数据结构与算法:双端队列用Python实现的数据 阅读全文