diff --git a/README.md b/README.md index ce7f51a..27d38c5 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,132 @@ The book can be bought from [Amazon](https://www.amazon.de/-/en/Brian-W-Kernigha ## Table of Contents - [Chapter 1: Style](chapter-1) + - [1.1 Names](chapter-1/1.1-names/) + - [x] 1-1 + - [x] 1-2 + - [x] 1-3 + - [1.2 Expressions and Statemenents](chapter-1/1.2-expressions-and-statements/) + - [x] 1-4 + - [x] 1-5 + - [x] 1-6 + - [1.3 Consistency and Idioms](chapter-1/1.3-consistency-and-idioms/) + - [x] 1-7 + - [x] 1-8 + - [1.4 Function Macros](chapter-1/1.4-function-macros/) + - [x] 1-9 + - [1.5 Magic Numbers](chapter-1/1.5-magic-numbers/) + - [x] 1-10 + - [1.6 Comments](chapter-1/1.6-comments/) + - [x] 1-11 + - [1.7 Why Bother?](chapter-1/1.7-why-bother/) - [Chapter 2: Algorithms and Data structures](chapter-2) + - [2.1 Searching](chapter-2/2.1-searching) + - [2.2 Sorting](chapter-2/2.2-sorting) + - [2.3 Libraries](chapter-2/2.3-libraries) + - [x] 2-1 + - [2.4 Java Quicksort](chapter-2/2.4-java-quicksort) + - [x] 2-2 + - [2.5 O-Notation](chapter-2/2.5-o-notation) + - [x] 2-3 + - [x] 2-4 + - [2.6 Growing Arrays](chapter-2/2.6-growing-arrays) + - [x] 2-5 + - [x] 2-6 + - [2.7 Lists](chapter-2/2.7-lists) + - [x] 2-7 + - [x] 2-8 + - [x] 2-9 + - [x] 2-10 + - [2.8 Trees](chapter-2/2.8-trees) + - [x] 2-11 + - [x] 2-12 + - [x] 2-13 + - [2.9 Hash Tables](chapter-2/2.9-hash-tables) + - [x] 2-17 - [Chapter 3: Design and Implementation](chapter-3) + - [3.1 The Markov Chain Algorithm](chapter-3/3.1-the-markov-chain-algorithm) + - [3.2 Data Structure Alternatives](chapter-3/3.2-data-structure-alternatives) + - [3.3 Building the Data Structure in C](chapter-3/3.3-building-the-data-structure-in-c) + - [3.4 Generating Output](chapter-3/3.4-generating-output) + - [x] 3-1 + - [] 3-2 + - [] 3-3 + - [3.5 Java](chapter-3/3.5-java) + - [x] 3-4 + - [3.6 C++](chapter-3/3.6-c++) + - [x] 3-5 + - [] 3-6 + - [3.7 AWK and Perl](chapter-3/3.7-awk-and-perl) + - [] 3-7 + - [3.8 Performance](chapter-3/3.8-performance) + - [3.9 Lessons](chapter-3/3.9-lessons) + - [x] 3-8 - [Chapter 4: Interfaces](chapter-4) + - [4.1 Comma-Separated Values](chapter-4/4.1-comma-separated-values) + - [4.2 A Prototyp Library](chapter-4/4.2-a-prototype-library) + - [4.3 A Library For Others](chapter-4/4.3-a-library-for-others) + - [] 4-1 + - [x] 4-3 + - [x] 4-2 + - [x] 4-4 + - [4.X](chapter-4/4.4-a-c++-implementation) + - [x] 4-5 + - [] 4-6 + - [] 4-7 + - [] 4-8 + - [4.5 Interface Principles](chapter-4/4.5-interface-principles) + - [4.6 Resource Management](chapter-4/4.6-resource-management) + - [4.7 Abort, Retry, Fail](chapter-4/4.7-abort-retry-fail) + - [4.8 User Interfaces](chapter-4/4.8-user-interfaces) - [Chapter 5: Debugging](chapter-5) + - [5.1 Debuggers](chapter-5/5.1-debuggers) + - [5.2 Good Clues, Easy Bugs](chapter-5/5.2-good-clues-easy-bugs) + - [5.3 No Clues, Hard Bugs](chapter-5/5.3-no-clues-hard-bugs) + - [5.4 Last Resorts](chapter-5/5.4-last-resorts) + - [5.5 Non-Reproducible Bugs](chapter-5/5.5-non-reproducible-bugs) + - [] 5-1 + - [5.6 Debugging Tools](chapter-5/5.6-debugging-tools) + - [x] 5-2 + - [x] 5-3 + - [x] 5-4 + - [x] 5-5 + - [5.7 Other Peoples Bugs](chapter-5/5.7-other-peoples-bugs) + - [5.8 Summary](chapter-5/5.8-summary) - [Chapter 6: Testing](chapter-6) + - [6.1 Test As You Write the Code](chapter-6/6.1-test-as-you-write-the-code) + - [x] 6-1 + - [x] 6-2 + - [6.2 Systematic Testing](chapter-6/6.2-systematic-testing) + - [x] 6-3 + - [] 6-4 + - [6.3 Test Automation](chapter-6/6.3-test-automation) + - [] 6-5 + - [6.4 Test Scaffolds](chapter-6/6.4-test-scaffolds) + - [] 6-6 + - [] 6-7 + - [] 6-8 + - [] 6-9 + - [6.5 Stress Tests](chapter-6/6.5-stress-tests) + - [x] 6-10 + - [6.6 Tips for Testing](chapter-6/6.6-tips-for-testing) + - [6.7 Who Does the Testing](chapter-6/6.7-who-does-the-testing) + - [6.8 Testing the Markov Program](chapter-6/6.8-testing-the-markov-program) + - [6.9 Summary](chapter-6/6.9-summary) - [Chapter 7: Performance](chapter-7) + - [7.1 A Bottleneck](chapter-7/README.md#71-a-bottleneck) + - [7.2 Timing and Profiling](chapter-7/README.md#72-timing-and-profiling) + - [x] 7-2 + - [] 7-3 + - [7.3 Strategies for Speed](chapter-7/README.md#73-strategies-for-speed) + - [7.4 Tuning the Code](chapter-7/README.md#74-tuning-the-code) + - [] 7-4 + - [] 7-5 + - [7.5 Space Efficiency](chapter-7/README.md#75-space-efficiency) + - [7.6 Estimation](chapter-7/README.md#76-estimation) + - [] 7-6 + - [] 7-7 + - [] 7-8 + - [7.7 Summary](chapter-7/README.md#77-summary) - Chapter 8: Portability - Chapter 9: Notation