- 博客(10)
- 收藏
- 关注
原创 python数据结构学习笔记-2016-11-09-01-文本编辑器
9.5 应用:文本编辑器 本节将多重链表应用于编辑缓冲ADT(Edit Buffer ADT)。 9.5.1 编辑操作 布局 通常将文本以行和列的形式组织起来。每一行有无限的长度,每一行的大小可能不同,但末尾都有换行符。一个空的文本,只有一行空行以及一个换行符。 文本光标 文本光标由行号以及
2016-11-09 20:56:51 946 1
原创 python数据结构学习笔记-2016-11-07-03-多重链表以及相应的迭代器
9.3 多重链表 多重链表(multi-linked list):每一个结点都含有多个指针,之前的双链表就是多重链表。 9.3.1 多条链 下图就是多重链表的一个例子:# 多重链表的结点class StudentMListNode(object): def __init__(self, data): se
2016-11-07 22:52:17 645
原创 python数据结构学习笔记-2016-11-07-02-环形链表
9.2 环形链表 环形链表(circlar linked list)将所有结点组织成环形。与单链表不同的是,最后一个结点的next指针指向首元结点。(首元结点的prev指针指向最后一个结点。) 通常情况下,可以使用一个外部指针指向最后一个结点,方便向前遍历或者向后遍历。# 遍历def traverse(listRef):
2016-11-07 21:33:52 353
原创 python数据结构学习笔记-2016-11-07-01-双链表
9.1 双链表 双链表(doubly link list):与之前的单链表不同的是,每一个结点有两个指针,一个指向下一个结点,另外一个指向上一个结点。 双链表中有两个指针,分别为头指针和尾指针,分别指向第一个结点和最后一个结点。 双链表的操作 遍历 双链表可以允许向前遍历,也可以向后遍历。
2016-11-07 20:34:33 333
原创 python数据结构学习笔记-2016-11-05-03-计算机仿真
8.4 应用:计算机仿真 8.4.1 航空公司票务柜台 本节对航空公司票务柜台进行仿真模拟。 队列系统建模 我们通过离散时间仿真来建模,这个仿真是一系列能显著改变系统的事件。它由时间驱动,并运行给定的时间。用户可以使用一些参数来设定系统。在这里,这些参数是系统运行的时长;柜台数量;完成一次交易的时间;顾客到来的时间分
2016-11-05 18:22:15 419
原创 python数据结构学习笔记-2016-11-05-02-优先级队列
8.3 优先级队列 8.3.1 优先级队列ADT 优先级队列:每次从队列中取出的应该是具有最高优先权的元素,这种队列称为优先级队列(priority queue)。 优先级队列根据优先级的有界与否,分为两种类型:有界优先级队列和无界优先级队列。 有界优先级队列(bounded priority queue)的优先权p在一定的范
2016-11-05 16:34:37 593
原创 python数据结构学习笔记-2016-11-05-01-队列ADT及其实现
8.1 队列ADT 队列(queue):只能在一端插入元素,在另一端删除元素的容器。其特点是先进先出(first-in first-out, FIFO)。 插入元素的一端称为后端(back),也称为队尾,删除元素德一端称为前端(front),也称为队头。 其具有如下属性:Queue():创建空队列;isEmpty():判断当前队列是否为空
2016-11-05 10:47:38 839
原创 python数据结构学习笔记-2016-11-02-02-迷宫问题
7.4 迷宫问题 7.4.1 回溯 蛮力法(brute-force method):穷举所有可能,一一验证。这种方法效率较低。 回溯法(backtracking):通过部分返回来排除解决问题可能途径进而找出正确途径的过程,例如说解决迷宫问题就可以用回溯法。相应的算法称为回溯算法。 7.4.2 设计解决方案 问
2016-11-02 22:01:52 4234
原创 python数据结构学习笔记-2016-11-02-01-栈的应用
7.3 应用 7.3.1 括号匹配 无论是在计算表达式还是在C++代码中,都会碰到括号匹配问题。如以下的C++代码:int sumList(int theList[], int size){ int sum = 0; int i = 0; while(i < size) { sum += theList[i]; i += 1;
2016-11-02 20:41:10 397
原创 python数据结构学习笔记-2016-11-01-01-栈ADT及其实现
7.1 栈ADT 栈(stack)是只允许在一端进行插入或删除元素操作的储存容器,其特点是后进先出(last-in first-out, LIFO)。 其允许插入删除的一端称为栈顶(top),另一端称为栈底(bottom)。没有任何元素时称为空栈。 栈ADT应包含的属性:Stack():创建一个空栈;isEmpty():判断栈是否为空;l
2016-11-01 22:15:47 1064
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人