伯克利大学《数据结构》讲义(1)

合集下载

绪论 数据结构讲义

绪论 数据结构讲义

性别 男 女 女 男 男 男 女
班号 9901 9902 9901 9902 9901 9902 9901
表中的记录顺序反映了数据元素之间的逻辑关 系, 用学号标识每个学生记录,这种逻辑关系可以表 示为:
<1,8>,<8,34>,<34,20>,<20,12>,
<12,26>,<26,5>
其中,尖括号<ai,ai+1>表示。 元素ai和ai+1之间是相邻的,即ai在ai+1之前,ai+1 在ai之后。
对于head为首结点指针的链表,从head所指结 点开始比较,head->no不等于20,从它的next得到 下 一 个 结 点 的 地 址 , 再 与 下 一 个 结 点 的 no 域 比 较,…,直到某结点的no域等于20,返回其name域。
数据结构的二元组表示
为了更确切地描述一种数据结构,通常采 用二元组表示:
优点:
便于修改,在进行插入、删除运算时,仅需修 改相应结点的指针域,不必移动结点。
缺点:
存储空间的利用率较低。
只能对结点进行顺序存取。
(3)索引存储方法
在存储结点信息的同时,还建立附加的索引表。 索引表中索引项的形式:(关键字,地址),关键字惟 一标识一个结点,地址作为指向结点的指针。 优点:
这种带有索引表的存储结构可以大大提高数据查 找的速度。
} ADT Complex
1.2 算法及其描述
1 什么是算法 2 算法描述
1.2.1 什么是算法
数据元素之间的关系有逻辑关系和物 理关系,对应的操作有逻辑结构上的操作 功能和具体存储结构上的操作实现。

数据结构(第1章)讲义

数据结构(第1章)讲义


01
02
03
树的定义
树是一种递归定义的数据 结构,其中每个节点可以 有多个子节点,但只有一 个父节点。
树的性质
树具有层次性、有序性和 无环性等性质。
树的表示方法
树可以使用多种方式表示, 如嵌套结构、邻接矩阵等。
森林
森林的定义
森林是由若干棵树组成的集合, 其中每棵树都是一个独立的数据
结构。
森林的性质
社交网络
社交网络中需要处理大量的用户关系和信息,数 据结构在其中发挥着重要的作用。例如,使用图 数据结构可以表示用户之间的关系,使用哈希表 可以快速查找用户信息。
THANKS FOR WATCHING
感谢您的观看
05 排序与查找
排序算法
• 冒泡排序:通过重复地遍历待排序的数列,比较相邻的两个元素,若它们的顺 序错误则交换它们,直到没有需要交换的元素为止。
• 选择排序:在未排序的序列中找到最小(或最大)的元素,存放到排序序列的 起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)元素,然后 放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
的中间元素开始,如果中间元素正好是目标值,则搜索过程结束;如果目标值 大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且同 样从中间元素开始比较。 • 哈希查找:通过哈希函数将关键字转化为数组下标,然后在对应的数组下标位 置上进行查找。 • 二叉查找树查找:在二叉查找树中进行查找,从根节点开始,如果当前节点的 关键字等于目标值,则查找成功;如果当前节点的关键字大于目标值,则在左 子树中继续查找;如果当前节点的关键字小于目标值,则在右子树中继续查找 。
• 插入排序:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、 个数加一的有序数据。

cs3460_ch1 Data Structures 美国高校《数据结构》(Data Structure)ppt课件,共9章,英文版

cs3460_ch1 Data Structures 美国高校《数据结构》(Data Structure)ppt课件,共9章,英文版

Series - 2
• The top three examples are arithmetic series
• Proofs are typically by induction, which we will see in a minute
• The series for HN is a harmonic series; the eo Euler’s constant 0.57721..
• Then show p1 * p2 * p3 * … * pk + 1 is a prime and it is clearly larger than pk
Recursion
• Some mathematical functions are naturally recursive
– factorial: n! =
• Two steps –
– Prove a base case, for example, if you want to prove a theorem for any integer value n >= 1, you would first prove it for n = 1
– Assuming the theorem is true for values 1..k for some arbitrary k, prove it is true for k + 1
Proof by Induction - 2
• We first prove the base case with n = 1, which results in 1 = 1 (1 + 1) (2 * 1 + 1) / 6
• To prove the general case, we let n = k and prove the formula for k+1 using algebraic manipulation

数据结构讲义精品PPT课件

数据结构讲义精品PPT课件

003 陈诚 02 男 19840910 638
… … … ……

数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉

《数据结构》讲义

《数据结构》讲义

数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。

换句话说,数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述;是计算机加工处理的对象。

包括数值、字符、声数据元素是组成数据的基本单位一个数据元素可由若干个数据项组成()数据对象是性质相同的数据元素的集合,是数据的一个子集。

…},字母字符数据对象是集合象。

由此可看出,不论数据元素集合是无限集(如整数集)Data Structure)数据元素相互之间的关系称为结构( Structure ),有四种基本结构。

集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。

线性结构:结构中的数据元素之间存在着一对一的线性关系。

图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。

为数据结构的有限集,S是D上关系的有限集。

表示复数的虚部。

存储结构(又称物理结构)是逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括据元素的表示和关系的表示形式化描述:要存入机器中,建立一从,使S(D逻辑结构与存储结构的关系为:数据结构的内容可归纳为三个部分:逻辑结构、存储结构和运算集合。

按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合,(Data Type)数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称合,即该类型的取值范围,以及该类型中可允许使用的一组运算。

例如高级语言中的数据类型就是已经实现的从这个意义上讲,数据类型是高级语言中允许的变量种类,计算机中使用的是二进制数,汇编语言中则可给出各种数据的十进制表示,如二进制数据的抽象; 使用者在编程时可以直接使用据抽象,出现了数据类型,(Abstract Data Type))是指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。

抽象数据类型的定义取决于客观存在的一组逻辑特性,而与其在计算机内如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。

数据结构基础讲义ppt课件

数据结构基础讲义ppt课件

三叉链存储
.
Date:May 30, 2020
4.8 二叉树的遍历
IT Education & Training
• 遍历是指按某条搜索路线遍访每个结点且不重复(又 称周游),遍历是树结构插入、删除、修改、查找和 排序运算的前提,是二叉树一切运算的基础和核心。
• 牢记一种约定,对每个结点的查看都是“先左后右”。
例子中的数学模型正是数据结构要讨论的问题。
.
Date:May 30, 2020
1.2 定义
IT Education & Training
•数据结构是一门讨论"描述现实世界实体的数学模型 及其上的操作在计算机中如何表示和实现"的学科。
a. 在解决问题时可能遇到的典型的逻辑结构(数据结构) b. 逻辑结构的存储映象(存储实现) c. 数据结构的相关操作及其实现。(算法)
•二叉树由一个根结点加上两棵分别称为左子树和右子 树的互不相交的树组成:
–每个结点最多只有两棵子树(不存在度大于2的结点) –左子树和右子树次序不能颠倒(有序树)
.
Date:May 30, 2020
4.6 树转化为二叉树
IT Education & Training
•左孩子右兄弟表示法可以将一颗多叉树转化为一颗二
• 数据结构和算法的关系:数据结构是专门研究 数据的存储问题,而对存储后的数据进行相应 的操作就是算法。
.
Date:May 30, 2020
1.5 算法效率的度量
IT Education & Training
• 我们通过大O表示法来表示算法的效率:时 间复杂度、空间复杂度。规则如下:
(1)只关注最高次项,常数项和次要项忽略; (2)时间复杂度是指最坏时间复杂度; (3)只有常数项记做1。

《数据结构》讲义

《数据结构》讲义

《数据结构》讲义数据结构是计算机科学和编程中非常重要的概念之一。

它是指在计算机中存储和组织数据的方法和原则。

一、介绍数据结构在计算机科学领域中具有重要的地位。

它涉及到如何存储和组织数据,以便于对其进行检索和操作。

数据结构可以分为两种基本类型:线性结构和非线性结构。

线性结构包括数组、链表、栈和队列,而非线性结构包括树和图。

二、线性结构1. 数组数组是一种用来存储多个相同类型的元素的数据结构。

它具有固定长度和连续的内存空间。

数组可以通过索引访问元素,可以快速地插入和删除元素,但是其长度固定不变。

2. 链表链表是一种由节点组成的数据结构,每个节点都包含一个值和指向下一个节点的指针。

链表可以在任意位置插入和删除节点,但是访问节点的时间复杂度较高。

3. 栈栈是一种具有特定操作限制的线性结构。

它遵循“先进后出”的原则,即最后插入的元素最先被访问和删除。

栈可以用来实现递归、回溯和表达式求值等功能。

4. 队列队列也是一种具有特定操作限制的线性结构。

它遵循“先进先出”的原则,即最先插入的元素最先被访问和删除。

队列可以用来实现任务调度、缓冲区等功能。

三、非线性结构1. 树树是一种由节点组成的非线性结构。

它包含一个根节点和多个子节点,每个节点可以有任意数量的子节点。

树可以用来表示层次关系、排序和搜索等功能。

2. 图图是一种由节点和边组成的非线性结构。

节点表示实体,边表示节点之间的关系。

图可以用来表示网络、关系和路径等信息。

四、常用数据结构在实际编程中,还有一些常用的数据结构:1. 哈希表:通过哈希函数将元素映射到不同的位置,实现快速的查找和插入操作。

2. 堆:一种特殊的树结构,可以快速找到最大或最小的元素。

3. 二叉搜索树:一种有序的二叉树,可以高效地进行搜索和插入操作。

五、应用场景数据结构在实际开发中有广泛的应用场景,包括但不限于以下几个方面:1. 数据库系统中的索引结构:为了快速检索数据,数据库系统使用各种数据结构来组织数据。

数据结构讲义第一章绪论

数据结构讲义第一章绪论

注:一个抽象数据类型确定了一个模型,但将模型的实 现细节隐藏起来;它定义了一组运算,但将运算 的实现过程隐藏起来。
用抽象数据类型的概念来指导问题的求解过程:
数学模型 非形式算法
抽象数据模型 伪语言程序
数据结构 可执行程序
§ 1.3 抽象数据类型
ADT的定义格式 ADT <ADT名> { 数据对象:<数据对象的定义> 结构关系:<结构关系的定义> 基本操作:<基本操作的定义> }ADT <ADT名>
初始化数据结构;
Destroy( )
销毁数据结构;
Get (i )
查找第 i 个元素;
Insert (i , b ) 在第 i 个位置插入元素 b ;
Delete( i )
删除第 i 个元素;
Traverse( )
遍历整个数据结构
§ 1.3 抽象数据类型
用C语言实现抽象数据类型ADT 用标准C语言表示和实现ADT描述时,主要
§ 1.2 数据结构的基本概念
数 据:描述客观事物的数字、字符以及一切 能够输入到计算机中,并且能够被计 算机程序处理的符号的集合。
数据是一个广义的概念,可以指普通的数据 (可参加算术运算),也可以指符号(源程序、 产品名称等)或数字化了的声音、图形、图像等。
§ 1.2 数据结构的基本概念
数据元素:数据(集合)中的一个个"个体",是组 成数据的"基本单位"。
a2 d4 d1
a1 d1 d2
list
a1
a2
a4 d5 d3
a3 d3 … d4
a3

a30 ∧
§ 1.3 抽象数据类型

数据结构基础讲义

数据结构基础讲义

数据结构基础讲义在计算机科学领域中,数据结构是一门极其重要的基础课程。

它就像是一座桥梁,连接着程序设计和算法分析,为我们解决各种实际问题提供了有力的工具。

接下来,让我们一起走进数据结构的世界,探索其中的奥秘。

一、什么是数据结构简单来说,数据结构就是数据的组织方式和存储结构。

我们在编程中处理的数据,比如整数、字符串、数组等,都需要以某种特定的方式进行组织和存储,以便能够高效地进行操作和处理。

打个比方,我们要整理一个书架上的书籍。

如果随意摆放,找书的时候就会很麻烦。

但如果按照一定的规则,比如按照作者的姓氏字母顺序或者书籍的类别进行排列,那么找书就会变得容易很多。

同样的道理,在计算机中,合理的数据结构可以让我们更快地访问、修改和处理数据。

二、常见的数据结构类型1、数组数组是一种最简单、最常见的数据结构。

它是一组具有相同数据类型的元素的有序集合。

在内存中,数组的元素是连续存储的,这使得我们可以通过索引快速访问到特定位置的元素。

例如,如果我们有一个整数数组`int arr5 ={10, 20, 30, 40, 50}`,要访问第三个元素,只需要使用`arr2` 就可以得到 30。

然而,数组也有它的局限性。

一旦数组的大小被定义,就很难动态地改变。

而且,插入和删除元素的操作可能会比较复杂,因为需要移动大量的元素。

2、链表链表则是一种动态的数据结构。

它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。

链表的优点是插入和删除操作相对简单,只需要修改指针即可。

但访问特定位置的元素就没有数组那么高效了,因为需要从头节点开始逐个遍历。

3、栈栈是一种特殊的线性表,它遵循“后进先出”(Last In First Out,LIFO)的原则。

想象一下叠盘子,最后放上去的盘子总是最先被拿走,这就是栈的工作方式。

在程序中,栈常用于函数调用、表达式求值等场景。

4、队列与栈相反,队列遵循“先进先出”(First In First Out,FIFO)的原则。

数据结构讲义(new)

数据结构讲义(new)

《数据结构》讲义(new)第1章C程序设计程序设计=数据描述+算法设计,即程序=数据结构+算法。

用计算机去解决问题过程:首先用数据结构的知识表示出问题,然后设计出解决问题的算法,最后写出程序在计算机上运行输出问题解决的结果。

本章我们将对C的主要知识作回顾,为学习数据结构奠定基础。

1.1 表达式算术运算:5/3 值为1,2.5/5 值为0.5,10%3 值为1,'A'+1 值为66赋值运算:a=3+5 a值为8,式值为8。

b=a=3+5 a,b值均为8,式值为8。

a+=3 即a=a+3; a-=3; a*=3; a/=3;a%=3.i++ ,++i,即i=i+1;i...,...i.区别:x=i++;与x=++i;关系运算:3==2,式值为0,3!=2,式值为1。

逻辑运算:0<x&&x<=1, x<=0||x>1,!(x<0). 注:“非零”为1。

条件运算:b>=0?a+b:a-b,即a+︱b︱逗号运算: a=6,a*3,a+3 式值为91.2 函数与参数1.2.1传值参数例1.1 输入四个数,输出其中的最大数。

int max(int x,int y) /*x,y是形参*/{int t;if(x>y) t=x; else t=y;return t;}main(){int a,b,c,d,m;scanf(“%d%d%d%d”,&a,&b,&c,&d);m=max(max(a,b),max(c,d)); /*a,b,c,d,max(a,b),max(c,d)是实参,传值调用*/ printf(“%d”,m);}1.2.1传址参数例1.2输入二个数到变量a与b,交换变量a与b的值后输出。

swap(int *x,int *y) /*x,y为传址参数*/{int t;t=*x;*x=*y;*y=t;}main(){int a,b;scanf("%d%d",&a,&b);swap(&a,&b); /*传址调用*/printf("%d %d",a,b);}例1.3 输入n 个数,升序排列后输出。

《数据结构》课件——第1章 数据结构与算法概述

《数据结构》课件——第1章 数据结构与算法概述
相邻。
eat

1.3
数据结构的基本概念
• 通常有两种存储结构:
40
例:(bat, cat, eat)
1. 顺序存储结构:用一组连续的存储单元依
次存储数据元素,数据元素之间的逻辑关
0200
0208
系由元素的存储位置来表示。
2. 链式存储结构:用一组任意的存储单元存
如何表示区域之间的邻接关系?
在图结构中,任一
数据元素,均可有
多个前趋和多个后
继,也称网状结构
1.2
本课程讨论的主要内容
• 由以上三个例子可见,描述这类非数值计算问题的数学模型不再是
数学方程,而是诸如表、树、图之类的数据结构。
• 数据结构是研究程序设计中非数值计算的数据以及它们之间的关系
和操作等的一门学科。重点分析数据之间抽象的相互关系,不涉及
面向计算机
内存
1.3
数据结构的基本概念
• 数据结构从逻辑上分为四类:
① 集合:数据元素之间就是“属于同一个集合”;
35
1.3
数据结构的基本概念
• 数据结构从逻辑上分为四类:
① 集合:数据元素之间就是“属于同一个集合”;
② 线性结构:数据元素之间存在着一对一的线性关系;
36
1.3
数据结构的基本概念
次排列的先后次序决定的关系
23
1.2
本课程讨论的主要内容
24
如何实现对弈?各格局(棋盘状态)之间是什么关系?
树型结构中,除树
根外,每个元素都
有唯一的前驱(后
继个数不限)
1.2
本课程讨论的主要内容
25
使用至多4种不同颜色对七巧板进行涂色(每块涂一种颜色),

数据结构演讲ppt

数据结构演讲ppt

When a function terminates, destructors for the data types of the formal parameters destroy the value formal parameters. When 破坏 a function terminates, formal parameter values are not copied back into the actual parameters. Consequently, function invocation does not change the actual parameters that correspond to value formal parameters.
旅程 算法
有效的
在...领域
Before you embark on the study of data structures and algorithm 着手
design methods, you need to be a proficient C++ programmer and an 熟练的
adept analyst of computer programs. These essential skills are typically 分析师
gained from introductory C++ and discrete structures courses. The first
two chapters of this book are intended as a review of these skills and 回顾
much of the material covered in these chapters should already be

数据结构基础讲义共47页

数据结构基础讲义共47页
数据结构基础讲义
56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
55、 为 中 华 之 崛起而 读书。 ——周 恩来
Hale Waihona Puke 60、人民的幸福是至高无个的法。— —西塞 罗
谢谢!
51、 天 下 之 事 常成 于困约 ,而败 于奢靡 。——陆 游 52、 生 命 不 等 于是呼 吸,生 命是活 动。——卢 梭
53、 伟 大 的 事 业,需 要决心 ,能力 ,组织 和责任 感。 ——易 卜 生 54、 唯 书 籍 不 朽。——乔 特
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ห้องสมุดไป่ตู้
01
Grading ------10 pts 20 pts 70 pts 25 pts 25 pts 50 pts Labs Homeworks Projects Midterm I Midterm II Final Exam
1
There are 200 points total you can earn in this course, broken down at left. 185+ points is an A+, 175-184 is an A, and so on down to D- (75-84). There is NO CURVE. Late homeworks and labs will not be accepted, period. Late projects are penalized 1% of your score for every two hours by which you miss the deadline.
There will be three projects, worth 20, 30, and 20 points respectively. You will do the first project individually, and the last two as part of a group of two or three students. You may not work alone on the last two projects. All homeworks and projects will be turned in electronically. Cheating -------...will be reported to the Office of Student Conduct. 1) "No Code Rule": Never have a copy of someone else’s program in your possession and never give your program to someone else. 2) Discussing an assignment without sharing any code is generally okay. Helping someone to interpret a compiler error message is an example of permissible collaboration. However, if you get a significant idea from someone, acknowledge them in your assignment. 3) These rules apply to homeworks and projects. No discussion whatsoever in exams, of course. 4) In group projects, you share code freely within your team, but not between teams. Goals of CS 61B --------------1) Learning efficient data structures and algorithms that use them. 2) Designing and writing large programs. 3) Understanding and designing data abstraction and interfaces. 4) Learning Java. THE LANGUAGE OF OBJECT-ORIENTED PROGRAMMING =========================================== Object: An object is a repository of data. For example, if MyList is a ShoppingList object, MyList might record...your shopping list. Class: A class is a type of object. Many objects of the same class might exist; for instance, MyList and YourList may both be shopping lists. Method: A procedure or function that operates on an object or a class. A method is associated with a particular class. For instance, addItem might be a method that adds an item to any ShoppingList object. Sometimes a method is associated with a family of classes. For instance, addItem might operate on any List, of which a ShoppingList is just one type. Inheritance: A class may inherit properties from a more general class. For example, the ShoppingList class inherits from the List class the property of storing a sequence of items. Polymorphism: The ability to have one method call work on several different classes of objects, even if those classes need different implementations of the method call. For example, one line of code might be able to call the "addItem" method on _every_ kind of List, even though adding an item to a ShoppingList is completely different from adding an item to a ShoppingCart. Object-Oriented: Each object knows its own class and how objects in that class are manipulated. Each ShoppingList and each ShoppingCart knows which implementation of addItem applies to it. In this list, the one thing that truly distinguishes object-oriented languages from procedural languages (Pascal, C, Fortran, Basic) is polymorphism.
08/27/06 23:05:44
CS 61B: Lecture 1 Monday, August 28, 2006 Prof. Jonathan Shewchuk, jrs@cory.eecs Email to prof & all TAs at once (preferred): cs61b@cory.eecs Today’s reading: Sierra & Bates, pp. 1-9, 18-19, 84. Handout: Course Overview (also available from CS 61B Web page) Also, read the CS 61B Web page as soon as possible! >>> /˜jrs/61b <<< YOU are responsible for keeping up with the readings and assignments. I won’t always remind you. The course newsgroup is required reading: ucb.class.cs61b Labs ---Labs (in 275 Soda) start next week on Tuesday. Discussion sections start this week. You must attend your scheduled lab (as assigned by Telebears) to: 1) get on the class list so we can give you a grade, and 2) get an account (needed for Lab 1 and Homework 1). You may only attend the lab in which you are officially enrolled. If you are not enrolled in a lab (on the waiting list or in concurrent enrollment), you must attend a lab that has space (show up and ask the TA if there’s room for you). You will not be enrolled in the course until you are enrolled in a lab. If you’re on the waiting list and the lab you want is full, you can change to one that isn’t, or you can stay on the waitlist and hope somebody drops. If you’re not yet enrolled in a lab, just keep going to them until you find one that has room for you (that week). Once you get enrolled in a lab, though, you must always attend the one you’re enrolled in. Prerequisites ------------If you have not taken CS 61A or E 77N, you have two choices: drop the class, or fill out an appeal form (in 393 Soda). You will probably be dropped automatically; see the drop list outside of 379 Soda. If you’ve taken a data structures course before, you might be able to skip CS 61B. See the Course Overview and Brian Harvey (781 Soda) for details. Textbooks --------Kathy Sierra and Bert Bates, Head First Java, Second Edition, O’Reilly, 2005. ISBN # 0-596-00920-8. Michael T. Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, Fourth Edition, John Wiley & Sons, 2004. ISBN # 0-471-73884-0. (The first/third edition will serve you just as well, but not the second.) We will use Sierra/Bates for the first month. as possible. Lay your hands on a copy as soon
相关文档
最新文档