以下勘误信息以及在最新一次印刷中勘误过了,如果图书中没有这些错误,请忽略这些勘误内容 1.1节 (1)方法二的Reserve方法中第一行代码”if head == None or head.next == None“修改为”if head == None or head.next == None or head.next.next == None:“ (2)方法三的第三行中“后序”修改为“后序” 1.4节 Reorder方法中”if head == None or head.next == None“修改为”if head == None or head.next == None or head.next.next == None:“ 1.8节 Reserve方法中倒数第三行代码cur=cur.next可以删除 2.2节 方法二deQueue方法 if self.pHead == None: print "出队列失败,队列已经为空" 修改为: if self.pHead == None: print "出队列失败,队列已经为空" return 2.5节 push方法中 if data < self.minStack.peek():修改为:“ if data <= self.minStack.peek():” 3.1节 例题2中的 “具有n个结点的完全二叉树的深度为 +1,因此,含有61个结点的完全二叉树的高度为 log2n+1,即应该为6层。所以,答案为6。” 修改为: “具有n个结点的完全二叉树的深度为 +1,因此,含有61个结点的完全二叉树的高度为 log261+1,即应该为6层。所以,答案为6。” 3.8节 方法二的图中最后一层结点的编号,原图中结点的编号依次为:8,9,10,修改为8,10,12 4.3节 下面代码中的getMin修改为:getMin_1 elif arr[high] >arr[mid]: return getMin(arr, low, mid - 1) # 最小值一定在数组右半部分 elif arr[mid]>arr[low]: return getMin(arr, mid + 1, high) # arr[low] == arr[mid] && arr[high] == arr[mid] # 这种情况下无法确定最小值所在的位置,需要在左右两部分分别进行查找 else: return min(getMin(arr, low, mid - 1), getMin(arr, mid + 1, high)) 4.6节 引申部分代码 elif arr[i] > r3 and arr[i] != r2: r3 = arr[i] 修改为: elif arr[i] > r3 and arr[i] < r2: r3 = arr[i] 5.10节 (1)方法一:如果Si+1 = = Sj+1 :那么P(i+1, j+1)=P(i, j)。修改为:如果Si== Sj:则P(i,j)=P(i+1,j-1) (2)方法三: 根据以上四种情况可以得出结论:P[i] >= MIN(P[2 * id - i], P[id]-i)。在计算的时候可以先求出P[i] = MIN(P[2 * id - i], P[id]-i),然后在此基础上向两边继续扩展寻找最长的回文子串,根据这个思路的实现代码如下: 修改为: 根据以上四种情况可以得出结论:P[i] >= MIN(P[2 * id - i], P[id]+id-i)。在计算的时候可以先求出P[i] = MIN(P[2 * id - i], P[id]+id-i),然后在此基础上向两边继续扩展寻找最长的回文子串,根据这个思路的实现代码如下: 6.3节 (1)引申三“(3)执行加法操作sum+=a < i;”修改为“(3)执行加法操作sum+=a << i;” 代码:while i<32: bit_position[1 << i]=i i +=1 #这行是新增加的 (2)引申四的代码修改为: def divid(a,b): neg = (a > 0) ^ (b > 0) #结果是否为负数 #首先计算它们绝对值的除法 if a<0: a = -a if b < 0: b = -b tmpMulti = 0 result = 1 while True: tmpMulti = multi(b,result) if tmpMulti<=a: result +=1 else: break if neg: return add(~(result-1), 1) else: return result -1 6.8节 方法二的代码修改为: def searth(n): a=[0,2,3,4,5,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28] ret=int(n/22)*30+a[n%22] return ret 8.4节 空间复杂度为O(1 )。修改为:空间复杂度为O(n)。 |
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.