第1到第4章的勘误表1、第9页中的表1.4的第4行:.....classtocreat应为.....classtocreate2、第13页的倒数第6行:的。这里待分类的....应为:的。这里待排序的....3、第16页第8行:的运行时间代价为O(MAX(f(n),g(n))。注意:这个(应该删除!4、第16页第19行:为O(MAX(n4,n2)=O(n*),在n为奇数时为O(MAX(n2,n3)=O(n3)。注意:)后应插入一个闭括号)5、第24页中的倒数第6、7行:template < class ElemType >class SeqList应为:template<class ElemType >class SeqList {6、第25页中第12行:注意:这个const应该删除intFind(ElemTypee)const:注意应改为:#因此我们把它用作哨兵单元7、第25页中倒数第11行因此我们把用作它哨兵单元。8、第26页中第3行:注意:和应改为到,即从1和n
3、第 16 页 第 8 行: 的运行时间代价为O(MAX((f(n),g(n))。 4、第 16 页 第 19 行: 为O(MAX(n4 ,n2 )=O(n4 ),在n 为奇数时为O( MAX(n2 ,n3 ) =O(n3 )。 第1到第4章的勘误表 注意:这个 ( 应该删除! 注意:)后应插入一个闭括号) 1、第 9 页中的表1.4的第4行:.class to creat 应为 .class to create 2、第13页的倒数第6行:的。这里待分类的. 应为: 的。这里待排序的. 6、第 25 页中第 12 行: 注意:这个 const 应该删除! int Find( ElemType e ) const; 注意应改为:因此我们把它用作哨兵单元。 7、第 25 页中倒数第 11 行: . 因此我们把用作它哨兵单元。 . 8、第 26 页中第 3 行: . ,即从1和n。. 注意:和 应改为 到 5、第 24 页中的 倒数第 6、7 行: template < class ElemType > class SeqList { 应为: template < class ElemType > class SeqList {
第1到第4章的勘误表9、第26页中第6行:注意:位应改为单元,哨兵位10、第26页中第7行:...哨兵位.11、第26页中第17行:注意:IInser应改为Insert..成员函数Inser.12、第28页中第19行:注意:const应删除int SeqList Find(ElemType e) const (13、第31页图2.7应为如下所示:注意:书上这2处忘记涂黑!headA卡tailAK(a)tailhead(b)图2.7双向链表和双向循环链表(a)双向链表:(b)双向循环链表
第1到第4章的勘误表 (a) (b) 图2.7 双向链表和双向循环链表 (a)双向链表;(b)双向循环链表 13、第 31 页 图2.7应为如下所示: 注意:书上这 2 处忘记涂黑 ! 9、第 26 页中第 6 行: . 哨兵位. 10、第 26 页中第 7 行: . 哨兵位. 注意:位 应改为 单元 注意: Inser 应改为 Insert 12、第 28 页中第 19 行: int SeqList Find(ElemType e ) const { 注意: const 应删除 11、第 26 页中第 17 行: . 成员函数 Inser
第1到第4章的勘误表14、第37页的图2.10:xAB...........Current(a)XBA...........PCurrent(b)注意:Current书上漏掉,请添上。图2.10删除操作的实现注意:当前结点后漏掉的,请添上。15、第38页的第17行当前结点前缀十十运算符
Current 第1到第4章的勘误表 A X Current . B . . A X B . P (a) (b) 图2.10 删除操作的实现 注意: Current 书上漏掉,请添上。 14、第37 页的图 2.10: 15、第38 页的第 17 行 .当前结点前缀++运算符。 注意: 当前结点 后漏掉 的,请添上
第1到第4章的勘误表16、第33页的倒数第10行:Il构造函数:作用于另外一个选代器AbsListItr的链表。本行应改为:通过复制得到当前选代器。注意:应为17、第36页的第一行个特殊结点-头节点
17、第 36 页的第一行: 个特殊结点- 头节点. 第1到第4章的勘误表 注意:应为 — 16、第 33页的倒数第 10 行: // 构造函数:作用于另外一个迭代器 AbsListItr 的链表。 本行应改为: // 通过复制得到当前迭代器
第1到第4章的勘误表注意:前缀之前插入的18、第38页的第17行://使当前结点的直接后继结点成为当前结点前缀++运算符。void operator ++();19、第39页倒数第16行语句:head = r.header;应改为:Exception(header!=R.header,“Referencetoanother list, it is ERROR!");即整个函数为如下所示:template<classElemType>constListItr<ElemType>&ListItr<ElemType>::operator=(constListItr<ElemType>&R)1/赋值运算符的实现。if(this==&R)return*this;Exception(header!=R.header,“Referenceto anotherlist,itisERROR!");Current = R.Current;return *this;1
18、第 38 页的第 17 行: void operator ++ ( ); // 使当前结点的直接后继结点成为当前结点前缀++运算符。 19、第 39 页 倒数第 16 行语句: head = r.header; 应改为: Exception( header != R.header, “Reference to another list, it is ERROR!” ) ; 即整个函数为如下所示: template <class ElemType> const ListItr<ElemType> & ListItr<ElemType> :: operator =( const ListItr<ElemType> & R ) { // 赋值运算符的实现。 if ( this = = &R ) return *this; Exception( header != R.header, “Reference to another list, it is ERROR!” ) ; Current = R.Current; return *this; } 第1到第4章的勘误表 注意:前缀 之前插入 的