Fork me on GitHub

2013年8月26日

摘要: 一、概述双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构。双端队列也拥有两端:队首(front)、队尾(rear),但与队列不同的是,插入操作在两端(队首和队尾)都可以进行,删除操作也一样。二、ADT双端队列ADT(抽象数据类型)一般提供以下接口:Deque() 创建双端队列addFront(item) 向队首插入项addRear(item) 向队尾插入项removeFront() 返回队首的项,并从双端队列中删除该项removeRear() 返回队尾的项,并从双端队列中删除该项empty() 判断双端队列是否为空size() 返回双端队列中 阅读全文
posted @ 2013-08-26 22:48 RussellLuo 阅读(2124) 评论(0) 推荐(0) 编辑
摘要: 一、概述队列(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... 阅读全文
posted @ 2013-08-26 18:01 RussellLuo 阅读(8129) 评论(2) 推荐(1) 编辑
摘要: 一、概述堆栈(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 阅读全文
posted @ 2013-08-26 14:35 RussellLuo 阅读(9820) 评论(1) 推荐(0) 编辑
摘要: 一、概述用Python实现的数据结构与算法 涵盖了常用的数据结构与算法(全部由Python语言实现),是 Problem Solving with Algorithms and Data Structures using Python(简写为PSADSP)的读书笔记。PSADSP 对经典的数据结构与算法进行了全面而细致地讲解,有兴趣的读者可以直接阅读该书。根据个人的学习进度,本文当前只摘取和总结了书中的部分内容,后续会逐步更新。二、目录基本数据结构用Python实现的数据结构与算法:堆栈用Python实现的数据结构与算法:队列用Python实现的数据结构与算法:双端队列用Python实现的数据 阅读全文
posted @ 2013-08-26 10:30 RussellLuo 阅读(4982) 评论(0) 推荐(0) 编辑

2013年8月9日

摘要: 一、动机引用 Markdown 文档(原版 | 中文版)中的描述:Markdown 的目标是:实现「易读易写」,成为一种适用于网络的书写语言。一份使用 Markdown 格式撰写的文档应该可以直接以纯文本方式发布,而不会看起来满是标签或格式指令。我们通常使用博客系统的 WYSIWYG 编辑器来写博客。与这种传统方式相比,我认为用 Markdown 写博客至少有以下好处:越文本越简单,所想即所得撰写 Markdown 文档就是在写纯文本文档,非常简单快捷;一旦熟悉了 Markdown 语法(非常容易),文档格式尽在掌握,所想即所得。可以试想下用 Vi/Vim 在键盘上弹奏文本,和在 WYSIWY 阅读全文
posted @ 2013-08-09 19:21 RussellLuo 阅读(1782) 评论(0) 推荐(1) 编辑

2013年8月6日

摘要: 一、概述forum是一个简单的web.py论坛,后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。该论坛的主要功能包括:注册、登录、密码找回头像/签名/邮箱/密码修改游客自由看贴、文章列表分页显示登录后发帖、作者才能删贴(所有对该贴的评论也会被删除)登录后无刷新回帖(包括引用回帖,即对回复的回复)forum代码的GitHub主页:https://github.com/RussellLuo/forum。二、代码结构forum是一个典型的Web应用,代码结构总体分为后端(back-end,简写为be)和前端(front 阅读全文
posted @ 2013-08-06 15:36 RussellLuo 阅读(9235) 评论(5) 推荐(0) 编辑

2013年7月18日

摘要: 一、背景最近在学习web.py,跟随官网的cookbook和code examples一路敲敲打打,在本地访问了无数遍http://0.0.0.0:8080/,也算是对web.py有了基本的认识。为了加强动手实践,我决定自己写一个简单的web.py应用;为了让这个web.py应用能够真正运行在互联网上,我决定将其托管到一个AppEngine(应用引擎)中去。目前可供选择的AppEngine有很多,国内的有:百度的BAE、新浪的SAE、阿里的ACE,国外的有:Google的GAE、Redhat的OpenShift,等等。这些AppEngine我都没有用过,自然无权评价它们孰优孰劣,网上关于这些A 阅读全文
posted @ 2013-07-18 13:45 RussellLuo 阅读(1734) 评论(0) 推荐(1) 编辑

2013年7月12日

摘要: 1、SQLite不支持关键字AUTO_INCREMENT1)AUTO_INCREMENT不生效的问题SQL语句:CREATE TABLE todo( id INTEGER AUTO_INCREMENT, title TEXT, PRIMARY KEY (id));问题描述:按照上述SQL语句创建表todo,用INSERT INTO todo (title) VALUES ('xxx')插入记录,但查询该记录后得到的id为NULL(即Python中的None)实验脚本:#!/usr/bin/python# -*- encoding: utf-8 -*-import sqlite3 阅读全文
posted @ 2013-07-12 21:25 RussellLuo 阅读(20890) 评论(0) 推荐(0) 编辑

2013年7月8日

摘要: 一、概述从零开始构建一个真正意义的网站需要做很多事情,包括购买计算机硬件、建造机房、注册域名、购买网络带宽、开发Web服务器软件、管理网站内容等等。在互联网发展的早期,构建网站的这一系列动作通常都是由单个组织独自完成的。在互联网已成主流的今天,很多人都想拥有一个自己的网站,但很少人具备构建网站的技能或时间。这一多一少的反差,直接催生了大量专业的机构和公司,它们根据用户(个人或企业)需求程度的不同,提供不同级别的网站构建服务:从仅仅提供硬件设施,到提供全站式服务(此时用户只需要提供网站内容即可)。这些构建网站所需的一系列动作统称为Web托管(Web Hosting),而那些提供Web托管服务(W 阅读全文
posted @ 2013-07-08 12:35 RussellLuo 阅读(466) 评论(0) 推荐(0) 编辑

2013年7月4日

摘要: 一、概述Web机器人(Web Robots)是一种Web客户端的软件程序,它自动发起一系列的Web事务,从而在没有人工参与的状态下完成各种Web数据的搜集和处理。典型的Web机器人有:股票绘图机器人(Stock-graphing robots)——用于从股票交易服务器上获取股票价格变化的数据,并绘制出走势图。商品比较机器人(Comparison-shopping robots)——用于从各个在线商店中获取包含各种商品及其价格的网页,进而构建商品数据库。Web爬虫(Crawlers)——作为搜索引擎的核心,它负责逐个爬取网页链接并搜集文档,从而为搜索引擎进一步构建全文索引数据库(Full-tex 阅读全文
posted @ 2013-07-04 15:17 RussellLuo 阅读(571) 评论(0) 推荐(0) 编辑

导航