# CONTENTS

CONTENTS

PERFACE

Part 1  Fundamental Programming Skills

Chapter 1  Practice for Simple Computing

1.1 Improving programming Style

1.2 Multiple Test Cases

1.3 Precision of Real Number

1.4 Improving Time Complexity by Dichotomy

1.5 Problems

Chapter 2  Simple Simulation

2.1 Simulation of Direct Statement

2.2 Simulation by Sieve Method

2.3 Simulation by Construction

2.4 Problems

Chapter 3  Simple Recursion

3.1 Calculation of Recursive Functions

3.2 Solving Problems by Recursive Algorithms

3.3 Solving Recursive datum

3.4 Problems

Summary of Part 1

Part 2 Experiments for Linear Lists

Chapter 4  Linear Lists Accessed Directly

4.1 Application of Arrays⑴: Calculation of Dates

4.2 Application of Arrays⑵: Calculation of High Precision Numbers

4.3 Application of Arrays⑶: Representation and Computation of Polynomials

4.4 Application of Arrays⑷:  Calculation of Numerical Matrices

4.5 Character Strings⑴: Storage Structure of Character Strings

4.6 Character Strings⑵: Pattern Matching of Character Strings

4.7 Problems

Chapter 5  Applications of Linear lists for Sequential Access

5.1 Application of Sequence Lists

5.2 Application of Stacks

5.3Application of Queues

5.4 Problems

Chapter 6  Generalized List Using Indexes

6.1 Solving Problems By Using Dictionaries

6.2 Solving Problems By Using Hash Table and Hash Method

6.3 Problems

Chapter 7  Sort of Linear Lists

7.1 Using Sort Function in STL

7.2 Using Sort Algorithms

7.3 Problems

Summary of Part 2

Part 3 Experiments for Trees

Chapter 8  Programming by Tree Structure

8.1 Solving Hierarchical Problems by Tree Traversal

8.2 Union-Find Sets Supported by Tree Structure

8.3 Calculation of Sum of Weights of Subtrees by Binary Indexed Trees

8.4 Problems

Chapter 9 Applications of Binary Trees

9.1 Converting Ordered Trees to Binary Trees

9.2 Paths of Binary Trees

9.3 Traversal of Binary Trees

9.4 Problems

Chapter 10 Applications of Classical Trees

10.1 Binary Search Trees

10.2 Binary Heaps

10.3 Huffman Trees

10.4 Problems

Summary of Part 3

Part 4 Experiments for Graphs

Chapter 11  Applications of Graph Traversal

11.1 BFS Algorithm

11.2 DFS Algorithm

11.3 Topological Sort

11.4 Connectivity of Undirected Graphs

11.5 Problems

Chapter 12  Algorithms of Minimum Spanning Trees

12.1 Kruskal Algorithm

12.2 Prim Algorithm

12.3 Problems

Chapter 13 Algorithms of Best Paths

13.1 Warshall Algorithm and Floyd-Warshall Algorithm

13.2 Dijkstra’s Algorithm

13.3 Bellman-Ford Algorithm

13.4 Shortest Path Faster Algorithm (SPFA Algorithm)

13.5 Problems

Chapter 14  Algorithms of Bipartite Graphs and Flow Networks

14.1  Maximum Matching in Bipartite Graphs

14.2  Flow Networks

14.3 Problems

Summary of Part 4 