《数据结构 Java版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)John Lewis Joseph Chase著;施平安译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302085528
  • 页数:462 页
图书介绍:本书是数据结构课程的经典教材。本书强调了在良好的软件工程原则指导下,用精心定义的数据结构和算法实现高质量的程序。为使读者能更好地理解本书,各章在内容安排上从易到难,由浅入深。对于每章所涉及的数据结构,都先介绍其概念,然后举例说明其用途,再讨论如何用Java编程语言实现,最后对各种实现的效率进行分析和对比。

目录 1

第1章 软件工程 1

1.1 软件开发 1

1.2 软件质量 2

1.3 软件开发生命期模型 6

1.4 统一建模语言 9

1.5 错误的处理 12

1.6 算法的分析 13

1.7 软件工程和数据结构 17

第2章 集合 21

2.1 本章简介 21

2.2 袋集合 24

2.3 使用袋的例子:bingo 28

2.4 袋的数组实现 30

2.5 分析袋的数组实现 42

第3章 链式结构 47

3.1 链式引用 47

3.2 管理链表 49

3.3 无链接的元素 51

3.4 袋的链式实现 52

3.5 分析袋的链式实现 59

第4章 递归 63

4.1 递归思想 63

4.2 递归编程 65

4.3 使用递归 68

4.4 分析递归算法 75

5.1 查找 79

第5章 查找与排序 79

5.2 排序 83

第6章 堆栈 95

6.1 堆栈ADT 95

6.2 使用堆栈:计算后缀表达式 97

6.3 使用堆栈:模拟递归 103

6.4 堆栈的链式实现 104

6.5 堆栈的数组实现 107

6.6 实现堆栈:java.util.Stack类 109

6.7 分析堆栈的实现 110

第7章 队列 115

7.1 队列ADT 115

7.2 使用队列:代码键 117

7.3 使用队列:模拟售票器 120

7.4 使用队列:基数排序法 124

7.5 队列的链式实现 127

7.6 队列的数组实现 130

7.7 使用循环数组来实现队列 132

7.8 队列实现的分析 135

第8章 链表 141

8.1 链表ADT 141

8.2 使用有序链表:制订赛程 147

8.3 使用索引链表:Josephus问题 151

8.4 链表的数组实现 154

8.5 链表的链式实现 158

8.6 分析链表的实现 162

第9章 树 169

9.1 树 169

9.2 树的实现策略 171

9.3 树的遍历 173

9.4 实现二叉树 176

9.5 使用二叉树:表达式树 182

第10章 二叉查找树 193

10.1 二叉查找树 193

10.2 二叉查找树的链式实现 194

10.3 使用二叉查找树实现有序链表 204

10.4 平衡二叉查找树 205

10.5 实现二叉查找树:AVL树 208

10.6 实现二叉查找树:红黑树 210

10.7 实现二叉查找树:Java集合API 215

第11章 堆 221

11.1 堆 221

11.3 使用堆:优先队列 225

11.2 使用堆:堆排序 225

11.4 堆的链式实现 228

11.5 堆的数组实现 232

11.6 分析堆的实现 235

第12章 多叉查找树 239

12.1 合并树的概念 239

12.2 2-3树 239

12.3 2-4树 245

14.4 B-树 246

12.5 B-树的实现策略 248

第13章 散列 251

13.1 散列 251

13.2 散列函数 253

13.3 解决冲突 255

13.4 删除哈希表中的元素 259

13.5 Java集合API中的哈希表 261

第14章 图 271

14.1 无向图 271

14.2 有向图 272

14.3 网络………………………- 274

14.4 图的通用算法 275

14.5 图的实现策略 281

附录A Java面向对象概念 285

A.1 面向对象简介 285

A.2 使用对象 286

A.3 类库和包 288

A.4 对象的状态和行为 289

A.5 类 290

A.6 封装 293

A.7 构造函数 295

A.8 方法重载 295

A.9 再谈引用 296

A.10 static修饰符 301

A.13 继承 305

A.14 类层次体系 308

A.15 多态 311

A.16 异常 315

附录B Java类库 319

AbstractButton(javax.swing) 319

ActionEvent(java.awt.event) 320

AdjustmentEvent(java.awt.event) 321

Applet(java.applet) 322

ArrayList(java.util) 324

AWTEvent(java.awt) 325

BigDecimal(java.math) 326

BigInteger(java.math) 329

BitSet(java.util) 331

Boolean(java.lang) 332

BorderFactory(javax.swing) 333

BorderLayout(java.awt) 334

Box(javax.swing) 335

BoxLayout(javax.swing) 336

BuffreredReader(java.io) 337

BufferedWriter(java.io) 338

ButtonGroup(javax.swing) 339

Byte(java.lang) 339

Calendar(java.util) 340

CardLayout(java.awt) 344

Character(java.lang) 345

Class(java.lang) 347

Color(java.awt) 349

Component(java.awt) 351

ComponentAdapter(java.awt.event) 355

ComponentEvent(java.awt.event) 356

Container(java.awt) 357

ContainerAdapter(java.awt.evnet) 359

ContainerEvent(java.awt.enent) 359

Cursor(java.awt) 360

Date(java.util) 361

DateFormat(java.text) 362

DateFormatSymbols(java.text) 364

DecimalFormat(java.text) 365

DecimalFormatSymbols(java.text) 367

Dimension(java.awt) 368

Double(java.lang) 369

Error(jave.lang) 370

Event(java.awt) 370

Exception(java.lang) 374

Float(java.lang) 374

FlowLayout(java.awt) 376

FocusAdapter(java.awt.event) 377

FocusEvent(java.awt.event) 377

Font(java.awt) 378

FontMetrics(java.awt) 379

Format(java.text) 380

Graphics(java.awt) 381

GregorianCalendar(java.util) 384

GridBagConstraints(java.awt) 385

GridBagLayout(java.awt) 387

GridLayout(java.awt) 389

Hashtable(java.util) 390

Image(java.awt) 391

ImageIcon(javax.swing) 392

InputEvent(java.awt.event) 393

InputStream(java.io) 394

InputStreamReader(java.io) 394

Insets(java.awt)…………………………- 395

Integer(java.lang) 396

ItemEvent(java.awt.event) 397

JApplet(javax.swing) 398

JCheckBox(javax.swing) 399

JButton(javax.swing) 399

JCheckBoxMenuItem(javax.swing) 400

JColorChooser(javax.swing) 400

JComboBox(javax.swing) 401

JComponent(javax.swing) 402

JFileChooser(javax.swing) 403

JFrame(javax.swing)………………………………………………………- 404

JLabel(javax.swing) 405

JList(javax.swing) 406

JOptionPane(javax.swing) 408

JPanel(javax.swing) 410

PasswordFieId(javax.swing) 410

JRadioBunon(javax.swing) 411

JScrollPane(javax.swing) 411

JSlider(javax.swing) 412

JTabbedPane(javax.swing) 413

JTextArea(javax.swing) 414

JTextField(javax.swing) 415

JToggleButton(javax.swing) 416

JToolTip(javax.swing) 416

KeyAdapter(java.awt.event) 416

KeyEvent(java.awt.event)……………………- 417

Locale(java.util) 421

Long(java.lang) 423

Math(java.lang) 424

MessageFormat(java.text) 426

MouseAdapter(java.awt.event) 427

MouseEvent(java.awt.event) 428

Number(java.lang) 429

MouseMotionAdapter(java.awt.event) 429

NumberFormat(java.text) 430

Object(java.lang) 432

ParsePosition(java.text) 433

Point(java.awt) 433

Polygon(java.awt) 434

PrintStream(java.io)……………- 435

Random(java.util) 436

Rectangle(java.awt) 437

Short(java.lang) 439

SimpleDateFormat(java.text) 440

SimpleTimeZone(java.util) 441

Stack(java.util) 442

String(java.Lang) 442

StringBuffer(java.lang) 445

StringTokenizer(java.util) 447

System(java.lang) 448

SystemColor(java.awt) 449

Thread(java.lang) 452

Throwable(java.lang) 454

Timer(javax.swing) 455

TimeZone(java.util) 455

URL(java.net) 456

Vector(java.util) 457

Void(java.lang) 459

Window(java.awt) 460

WindowAdapter(java.awt.event) 461

WindowEvent(java.awt.event) 461