Skip to content

Commit a188190

Browse files
committed
Deployed 5c900f2 with MkDocs version: 0.17.3
1 parent a838ab3 commit a188190

File tree

22 files changed

+674
-592
lines changed

22 files changed

+674
-592
lines changed

.DS_Store

6 KB
Binary file not shown.

00_课程简介之笨方法学算法/why_and_how_to_learn/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@
218218
<h1 id="_1">什么是算法和数据结构?</h1>
219219
<p>你可能会在一些教材上看到这句话:</p>
220220
<p>程序 = 算法 + 数据结构</p>
221-
<p>算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
222-
数据结构(Data Structures):是计算机存储和组织数据的一种方式,可以用来高效地处理数据。</p>
221+
<p>算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。</p>
222+
<p>数据结构(Data Structures):是计算机存储和组织数据的一种方式,可以用来高效地处理数据。</p>
223223
<p>举个例子:二分查找就是一个非常经典的算法,而二分查找经常需要作用在一个有序数组上。这里二分就是一种折半的算法思想,
224224
而数组是我们最常用的一种数据结构,支持根据下标快速访问。很多算法需要特定的数据结构来实现,所以经常把它们放到一块讲。</p>
225225
<p>实际上,在真正的项目开发中,大部分时间都是 从数据库取数据 -&gt; 数据操作和结构化 -&gt; 返回给前端,在数据操作过程中需要合理地抽象,
Binary file not shown.
Binary file not shown.
6.59 KB
Binary file not shown.
-3.41 KB
Binary file not shown.
9.67 KB
Binary file not shown.

03_链表/linked_list.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __len__(self):
3131
return self.length
3232

3333
def append(self, value): # O(1)
34-
if self.maxsize is not None and len(self) > self.maxsize:
34+
if self.maxsize is not None and len(self) >= self.maxsize:
3535
raise Exception('LinkedList is Full')
3636
node = Node(value) # 构造节点
3737
tailnode = self.tailnode
@@ -43,7 +43,7 @@ def append(self, value): # O(1)
4343
self.length += 1
4444

4545
def appendleft(self, value):
46-
if self.maxsize is not None and len(self) > self.maxsize:
46+
if self.maxsize is not None and len(self) >= self.maxsize:
4747
raise Exception('LinkedList is Full')
4848
headnode = self.root.next
4949
node = Node(value)
@@ -61,7 +61,8 @@ def iter_node(self):
6161
while curnode is not self.tailnode: # 从第一个节点开始遍历
6262
yield curnode
6363
curnode = curnode.next # 移动到下一个节点
64-
yield curnode
64+
if curnode is not None:
65+
yield curnode
6566

6667
def remove(self, value): # O(n)
6768
""" 删除包含值的一个节点,将其前一个节点的 next 指向被查询节点的下一个即可
@@ -113,6 +114,7 @@ def clear(self):
113114
del node
114115
self.root.next = None
115116
self.length = 0
117+
self.tailnode = None
116118

117119

118120
def test_linked_list():
@@ -151,6 +153,7 @@ def test_linked_list():
151153

152154
ll.clear()
153155
assert len(ll) == 0
156+
assert list(ll) == []
154157

155158

156159
def test_linked_list_remove():

03_链表/wnntest.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env bash
2+
3+
# python linked_list.py
4+
when-changed . 'py.test -s linked_list.py'
5+
# when-changed . 'py.test -s double_link_list.py'
6+
# python double_link_list.py
5.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)