A Practical Introduction to Data Structures and Algorithm Analysis:Java Edition

副标题:无

作   者:(美)Clifford A.Shaffer著

分类号:

ISBN:9787505375819

微信扫一扫,移动浏览光盘

简介

   本书采用了当前十分流行且适合于Internet环境的面向对象的程序设计语言Java作为算法描述语言。本书利用Java的接口来定义抽象数据类型,并把数据结构原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和排序、检索的各种方法。书中还引入了一些比较高级的数据结构与先进的算法分析技术,并介绍了可计算性理论的一般知识。    本书概念清晰,逻辑性强,内容新颖,可作为大专院校计算机软件专业与计算机应用专业的教材和参考书,也可供计算机工程技术人员参考。   

目录

preface

part i preliminaries

chapter 1 data structures and algorithms

1. 1 a philosophy of data structures

1. 1. 1 the need for data structures

1. 1 .2 costs and benefits

1. 1 .3 goals of this book

1. 2 abstract data types and data structures

1. 3 problems, algorithms, and programs

1. 4 algorithm efficiency

1. 5 further reading

1. 6 exercises

chapter 2 mathematical preliminaries

2. 1 sets

2. 2 miscellaneous notation

2. 3 logarithms

2. 4 recursion

2. 5 summations and recurrences

2. 6 mathematical proof techniques

2. 6. 1 proof by contradiction

.2. 6. 2 proof by mathematical induction

2. 7 estimating

2. 8 further reading

2. 9 exercises

chapter 3 algorithm analysis

3. 1 introduction

3. 2 best, worst, and average cases

3. 3 a faster computer, or a faster algorithm?

3. 4 asymptotic analysis

3. 4. 1 upper bounds

3. 4. 2 lower bounds

3. 4. 3 q notation

3. 4. 4 simplifying rules

3. 5 calculating the running time of a program

3. 6 analyzing problems

3. 7 multiple parameters

3. 8 space bounds

3. 9 some practical considerations

3. 10 further reading

3. 11 exercises

3. 12 projects


part ii fundamental data structures

chapter 4 lists, stacks, and queues

4. 1 lists

4. 1. 1 array-based list implementation

4. 1. 2 linked list

4. 1. 3 comparison of list implementations

4. 1. 4 element implementations

4. 1. 5 doubly linked list

4. 1. 6 circular linked lists

4. 2 stacks

4. 2. 1 array-based stacks

4. 2. 2 linked stacks

4. 2. 3 comparison of array-based and linked stacks

4. 2. 4 implementing recursion

4. 3 queues

4. 3. 1 array-based queues

4. 3. 2 linked queues

4. 3. 3 comparison of array-based and linked queues

4. 4 exercises

4. 5 projects

chapter 5 binary trees

5. 1 definitions and properties

5. 1. 1 the full binary tree theorem

5. 1. 2 a binary tree node adt

5. 2 binary tree traversals

5. 3 binary tree implementations

5. 3. 1 pointer-based node implementations

5. 3. 2 space requirements

5. 3. 3 array implementation for complete binary trees

5. 4 huffman coding trees

5. 4. 1 building huffman coding trees

5. 4. 2 assigning and using huffman codes

5. 5 binary search trees

5. 6 heaps and priority queues

5. 7 further reading

5. 8 exercises

5. 9 projects

chapter 6 general trees

6. 1 general tree definitions and terminology

6. 1. 1 an adt for general tree nodes

6. 1. 2 general tree traversals

6. 2 the parent pointer implementation

6. 3 general tree implementations

6. 3. 1 list of children

6. 3. 2 the left child/right sibling implementation

6. 3. 3 dynamic node implementations

6. 3. 4 dynamic "left child/right sibling" implementation

6. 4 k-ary trees

6. 5 sequential tree implementations

6. 6 further reading

6. 7 exercises

6. 8 projects

chapter 7 graphs

7. 1 terminology and representations

7. 2 graph implementations

7. 3 graph traversals

7. 3. 1 depth-first search

7. 3. 2 breadth-first search

7. 3. 3 topological sort

7. 4 shortest-paths problems

7. 4. 1 single-source shortest paths

7. 4. 2 all-pairs shortest paths

7. 5 minimum-cost spanning trees

7. 5. 1 prim's algorithm

7. 5. 2 kruskal's algorithm

7. 6 further reading

7. 7 exercises

7. 8 projects


part iii sorting and searching

chapter 8 internal sorting

8. 1 sorting terminology and notation

8. 2 three sorting algorithms

8. 2. 1 insertion sort

8. 2. 2 bubble sort

8. 2. 3 selection sort

8. 2. 4 the cost of exchange sorting

8. 3 shellsort

8. 4 quicksort

8. 5 mergesort

8. 6 heapsort

8. 7 binsort and radix sort

8. 8 an empirical comparison of sorting algorithms

8. 9 lower bounds for sorting

8. 10 further reading

8. 11 exereises

8. 12 projects

chapter 9 file processing and external sorting

9. 1 primary versus secondary storage

9. 2 disk and tape drives

9. 2. 1 disk access costs

9. 2. 2 magnetic tape

9. 3 buffers and buffer pools

9. 4 the programmer's view of files

9. 5 external sorting

9. 6 simple approaches to external sorting

9. 7 replacement selection

9. 8 multiway merging,

9. 9 further reading

9. 10 exercises

9. 11 projects

chapter 10 searching

10. 1 searching sorted arrays

10. 2 self-organizing lists

10. 3 searching in sets

10. 4 hashing

10. 4. 1 hash functions

10. 4. 2 open hashing

10. 4. 3 closed hashing

10. 5 further reading

10. 6 exercises

10. 7 projects

chapter 11 indexing

11. 1 linear indexing

11. 2 isam

11. 3 tree indexing

11. 4 2-3 trees

11. 5 b-trees

11. 5. 1 b+-trees

11. 5. 2 b-tree analysis

11. 6 further reading

11. 7 exercises

11. 8 proects


part iv applications and advanced topics

chapter 12 lists and arrays revisited

12. 1 skip lists

12. 2 multilists

12. 3 matrix representations

12. 4 memory management

12. 4. 1 dynamic storage allocation

12. 4. 2 failure policies and garbage collection

12. 5 further reading

12. 6 exercises

12. 7 projects

chapter 13 advanced tree structures

13. 1 tries

13. 2 splay trees

13. 3 spatial data structures

13. 3. 1 the k-d tree

13. 3. 2 the pr quadtree

13. 3. 3 other spatial data structures

13. 4 further reading

13. 5 exercises

13. 6 projects

chapter 14 analysis techniques

14. 1 summation techniques

14. 2 recurrence relations

14. 2. 1 estimating upper and lower bounds

14. 2. 2 expanding recurrences

14. 2. 3 divide and conquer recurrences

14. 2. 4 average-case analysis of quicksort

14. 3 amortized analysis

14. 4 further reading

14. 5 exercises

14. 6 projects

chapter 15 limits to computation

15. 1 introduction

15. 2 reductions

15. 3 hard problems

15. 3. 1 np-completeness

15. 3. 2 getting around np-complete problems

15. 4 impossible problems

15. 4. 1 uncountability

15. 4. 2 the halting problem is unsolvable

15. 4. 3 determining program behavior is unsolvable

15. 5 further reading

15. 6 exercises

15. 7 projects


part v appendix

appendix a java tutorial for c and pascal programmers

a. 1 example 1: interface for lists

a. 2 example 2: array-based list implementation

a. 3 example 3: linked list implementation

bibliography


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

A Practical Introduction to Data Structures and Algorithm Analysis:Java Edition
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon