python算法和数据结构笔记--递归--英国标尺的绘制
2017-08-30 15:22
1361 查看
<Data Structures andAlgorithms in Python> Michael T.Goodrich,Roberto Tamassia,Michael H.Goldwasser 学习笔记,内容源自该书
英国标尺的绘制
每一寸一个数字标签,一个整英寸里有次级的标注线,比如1/2英寸,1/4英寸,刻度线长度依次变短。当刻度长度减小一般时,刻度线减少一个-符号。
a:4级刻度的2寸尺子,b:5级刻度的1寸尺子,c:3级刻度的3寸尺子
#画一个给定长度L主刻度
def draw_line(tick_length,tick_label=''):
line = '-'*tick_length
if tick_label:
line += ' ' + tick_label
print(line)
#画主刻度中间的次刻度,刻度级数为L-1,递归
def draw_interval(center_length):
if center_length > 0:
draw_interval(center_length - 1)
draw_line(center_length)
draw_interval(center_length - 1)
#画指定长度及刻度级数的尺子
def draw_ruler(num_inches, major_length):
draw_line(major_length, '0')
for j in range(1,1 + num_inches):
draw_interval(major_length-1)
draw_line(major_length,str(j))
递归过程图解
英国标尺的绘制
每一寸一个数字标签,一个整英寸里有次级的标注线,比如1/2英寸,1/4英寸,刻度线长度依次变短。当刻度长度减小一般时,刻度线减少一个-符号。
a:4级刻度的2寸尺子,b:5级刻度的1寸尺子,c:3级刻度的3寸尺子
#画一个给定长度L主刻度
def draw_line(tick_length,tick_label=''):
line = '-'*tick_length
if tick_label:
line += ' ' + tick_label
print(line)
#画主刻度中间的次刻度,刻度级数为L-1,递归
def draw_interval(center_length):
if center_length > 0:
draw_interval(center_length - 1)
draw_line(center_length)
draw_interval(center_length - 1)
#画指定长度及刻度级数的尺子
def draw_ruler(num_inches, major_length):
draw_line(major_length, '0')
for j in range(1,1 + num_inches):
draw_interval(major_length-1)
draw_line(major_length,str(j))
递归过程图解
相关文章推荐
- python算法和数据结构笔记--递归--二分查找
- python算法和数据结构笔记--汉诺塔问题超详细递归过程图解(堆栈数据结构)
- python数据结构学习笔记-2016-11-11-01-递归
- python数据结构学习笔记-2016-11-12-02-递归的应用
- python数据结构学习笔记-2017-01-08-01-N皇后问题、迷宫问题和跳马问题的递归解决
- 数据结构与算法学习笔记之高效、简洁的编码技巧“递归”
- python 学习笔记一 (数据结构和算法)
- python数据结构学习笔记-2-算法
- linux下python学习笔记(十二)数据结构2
- python数据结构学习笔记-2016-12-03-01-堆排序
- python递归绘制简单分形树
- 数据结构学习笔记 --- 线性表 (一些常见的关于链表的算法和面试题)
- 它处资料:数据结构学习笔记(12.递归的应用之八皇后回溯算法)
- Python学习笔记(7):数据结构
- 数据结构与算法学习笔记——堆排序
- 【ML学习笔记】23:用python绘制决策树
- 数据结构及算法(Python)---队列
- 【郝斌数据结构自学笔记】26_通过链表排序算法的演示再次详细讨论到底什么是算法以及到底什么是泛型【重点】
- 数据结构 学习笔记(九):图(下):最小生成树(Prim,Kruskal 算法),拓扑排序 AOV,关键路径 AOE
- 数据结构笔记--1.1.3关于算法效率 计算多项式值