{"version":1,"pages":[{"id":"A0xeHBNIwSI01XJE2KYW","title":"Spring 2026 Textbook","pathname":"/cs61b-textbook-spring-2026","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"bC7GvsO8LRPgk4n8thEx","title":"Contributors","pathname":"/cs61b-textbook-spring-2026/readme-1","siteSpaceId":"sitesp_BbCLu","description":"61B Course Staff who helped contribute to this amazing 61Book!"},{"id":"JN2a1nQZufUmOhEh541a","title":"DISCLAIMER","pathname":"/cs61b-textbook-spring-2026/disclaimer","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"UKyL0DI7sIhgvNzSMi1F","title":"1. Introduction","pathname":"/cs61b-textbook-spring-2026/1.-introduction","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"xZEzTXolDWH0hIXzBrLh","title":"1.1 Your First Java Program","pathname":"/cs61b-textbook-spring-2026/1.-introduction/1.1-your-first-java-program","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"dQvKn5bUdzAheTiaLqka","title":"1.2 Basic Java Features","pathname":"/cs61b-textbook-spring-2026/1.-introduction/1.2-basic-java-features","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"C3ze1Fzi271dgINLHKKw","title":"1.3 Java Workflow","pathname":"/cs61b-textbook-spring-2026/1.-introduction/1.3-java-workflow","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"sPNowTmeqGlHWO7BG2Jd","title":"2. Defining and Using Classes","pathname":"/cs61b-textbook-spring-2026/2.-defining-and-using-classes","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"LwCakog8rKtIwQ5UlTDI","title":"3. References, Recursion, and Lists","pathname":"/cs61b-textbook-spring-2026/3.-references-recursion-and-lists","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"fwQ1tQ7G5czWbM4dBODN","title":"4. Testing","pathname":"/cs61b-textbook-spring-2026/4.-testing","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"9yQ2wtgDxvO19fyt0hhU","title":"5. SLLists","pathname":"/cs61b-textbook-spring-2026/5.-sllists","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"dBnpRZK2prODugB8R5UJ","title":"6. DLLists and Arrays","pathname":"/cs61b-textbook-spring-2026/6.-dllists-and-arrays","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"kji15W09KtwvTCg5JBOt","title":"7. Resizing ArrayList","pathname":"/cs61b-textbook-spring-2026/7.-resizing-arraylist","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"f7ALUxYnwX6v4Ixs7NPE","title":"8. Inheritance I: Interface and Implementation Inheritance","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"4BcMU3o9zz4xy3qWcTL8","title":"8.1 The Problem of Generality","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.1-the-problem-of-generality","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"Vp3DNBGPOWYWBcmkOgZh","title":"8.2 Hypernyms, Hyponyms, and the Implements Keyword","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.2-hypernyms-hyponyms-and-the-implements-keyword","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"CnC2r5HqBrbmElLoUpfX","title":"8.3 Overriding, Interface Inheritance","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.3-overriding-interface-inheritance","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"uZHSAdqJulhT8msh8eO5","title":"8.4 Implementation Inheritance, default","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.4-implementation-inheritance-default","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"OYixTqOiuQd2I3Ae6t8C","title":"8.5 Implementation vs. Interface Inheritance","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.5-implementation-vs.-interface-inheritance","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"gVtisHPVARGpDWEAuAB2","title":"8.6 Abstract Data Types","pathname":"/cs61b-textbook-spring-2026/8.-inheritance-i-interface-and-implementation-inheritance/8.6-abstract-data-types","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"8. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"8wKUz2MaAxRfu4lOtUCU","title":"9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions","pathname":"/cs61b-textbook-spring-2026/9.-inheritance-ii-extends-casting-higher-order-functions","siteSpaceId":"sitesp_BbCLu","description":"By Josh Hug"},{"id":"OrTlbvk9qYG9Dbl6WPDL","title":"9.1 Polymorphism vs. Function Passing","pathname":"/cs61b-textbook-spring-2026/9.-inheritance-ii-extends-casting-higher-order-functions/9.1-subtype-polymorphism-vs.-function-passing","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"EiH2RCYvXUecdqN8Xs6i","title":"9.2 Comparables and Comparators","pathname":"/cs61b-textbook-spring-2026/9.-inheritance-ii-extends-casting-higher-order-functions/9.2-encapsulation","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"41ajvW3b6vGq23iiyuw8","title":"9.3 Writing a Max Function","pathname":"/cs61b-textbook-spring-2026/9.-inheritance-ii-extends-casting-higher-order-functions/9.3-casting","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"11f8pAd77Vhsa5ICSBvv","title":"9.4 Summary","pathname":"/cs61b-textbook-spring-2026/9.-inheritance-ii-extends-casting-higher-order-functions/9.4-higher-order-functions-in-java","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"pXb4x9hGSlx7BG6Wzxmr","title":"10. Inheritance III: Iterators, Object Methods","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"aROcrrWwoWCSPIR2opiG","title":"10.1 Lists and Sets in Java","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.1-lists-and-sets-in-java","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"8eOliHu5SR22dow8Wxtl","title":"10.2 Exceptions","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.2-exceptions","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"WbKWsK7Wc1IQSbaNYicm","title":"10.3 Iteration","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.3-iteration","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"oRtbhxK2M2gw2Qca3P7k","title":"10.4 Object Methods","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.4-object-methods","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"sl28FC49khJh8LsfiKWC","title":"10.5 Chapter Summary","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.5-chapter-summary","siteSpaceId":"sitesp_BbCLu","description":"Summary of the main points in this chapter.","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"zSotxLdPDYD1SmMkv2kA","title":"10.6 Exercises","pathname":"/cs61b-textbook-spring-2026/10.-inheritance-iv-iterators-object-methods/10.6-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"10. Inheritance III: Iterators, Object Methods"}]},{"id":"D8L5JRTu6acdJOZH6a8K","title":"11. Asymptotics I","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i","siteSpaceId":"sitesp_BbCLu","description":"By: Thomas Lee"},{"id":"1kHrgJd3e1sGQN2gshjs","title":"11.1 An Introduction to Asymptotic Analysis","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.1-an-introduction-to-asymptotic-analysis","siteSpaceId":"sitesp_BbCLu","description":"We always have to start somewhere.","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"gi7lVP6WtpuCs3p3cijX","title":"11.2 Runtime Characterization","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.2-runtime-characterization","siteSpaceId":"sitesp_BbCLu","description":"Techniques for Measuring Computational Cost.","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"vuhB7d4k8lwCy7VYHAri","title":"11.3 Checkpoint: An Exercise","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.3-checkpoint-an-exercise","siteSpaceId":"sitesp_BbCLu","description":"Some much needed practice.","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"8CzSv0dbl6Iq66JJX1wd","title":"11.4 Asymptotic Behavior","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.4-asymptotic-behavior","siteSpaceId":"sitesp_BbCLu","description":"Be on your best behavior!","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"fiRq7Mp1cxXkYCqHBloB","title":"11.5 Simplified Analysis Process","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.5-simplified-analysis-process","siteSpaceId":"sitesp_BbCLu","description":"It's not that simple.","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"Yebg4rFiTkJKq7CJMAAd","title":"11.6 Summary","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.6-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"9TZumG6sOkfJmEoHbkYb","title":"11.7 Exercises","pathname":"/cs61b-textbook-spring-2026/11.-asymptotics-i/11.7-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"11. Asymptotics I"}]},{"id":"2AX0dXtj1Rr9BmWebXVk","title":"12. Asymptotics II","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii","siteSpaceId":"sitesp_BbCLu","description":"There's no magic shortcut."},{"id":"nEpGRrzDHZUPJzSC7F25","title":"12.1 Big Theta","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.1-big-theta","siteSpaceId":"sitesp_BbCLu","description":"Not to be confused with Big-O.","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"apGrDaPKgAgF1vZzl3hI","title":"12.2 Big O","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.2-big-o","siteSpaceId":"sitesp_BbCLu","description":"Not to be confused with Big-Theta.","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"lLen8BHp8UgTxUTrvynI","title":"12.3 For Loops","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.3-for-loops","siteSpaceId":"sitesp_BbCLu","description":"Count, count, count...","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"kC6KEJVjLA5Uw6rrAc7W","title":"12.4 For Loops Print Party","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.4-for-loops-print-party","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"4p9RetkXK4S606kjtFdA","title":"12.5 Summary","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.5-summary","siteSpaceId":"sitesp_BbCLu","description":"Wrapping up our asymptotics adventures.","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"kBPTrfYHDsZZAQL75Hie","title":"12.6 Exercises","pathname":"/cs61b-textbook-spring-2026/12.-asymptotics-ii/12.6-exercises","siteSpaceId":"sitesp_BbCLu","description":"Doing more practices is the best way to gain intuition when it comes to asymptotics!","breadcrumbs":[{"label":"12. Asymptotics II"}]},{"id":"oaI8x22VgNAEQAzc0EdQ","title":"13. Asymptotics III","pathname":"/cs61b-textbook-spring-2026/13.-asymptotics-iii","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"0nMn6OXoX2TYzqlD3dom","title":"13.1 Recursion","pathname":"/cs61b-textbook-spring-2026/13.-asymptotics-iii/13.1-recursion","siteSpaceId":"sitesp_BbCLu","description":"Here we go again...","breadcrumbs":[{"label":"13. Asymptotics III"}]},{"id":"RGKyGDtK9Pv5rs85kSZk","title":"13.2 Binary Search","pathname":"/cs61b-textbook-spring-2026/13.-asymptotics-iii/13.2-binary-search","siteSpaceId":"sitesp_BbCLu","description":"hi-lo!","breadcrumbs":[{"label":"13. Asymptotics III"}]},{"id":"9DQSAp46LoT0kiF8ytt2","title":"13.3 Mergesort","pathname":"/cs61b-textbook-spring-2026/13.-asymptotics-iii/13.3-mergesort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"13. Asymptotics III"}]},{"id":"h8LqMN3RuZCuExDISARz","title":"13.4 B-trees Big O","pathname":"/cs61b-textbook-spring-2026/13.-asymptotics-iii/13.4-b-trees-big-o","siteSpaceId":"sitesp_BbCLu","description":"A short digression on asymptotics","breadcrumbs":[{"label":"13. Asymptotics III"}]},{"id":"UtW1HStUin65g8BYwf29","title":"14. Disjoint Sets","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets","siteSpaceId":"sitesp_BbCLu","description":"By Dhruti Pandya and Mihir Mirchandani"},{"id":"MOUiU2MD8tno8lgxdefv","title":"14.1 Introduction","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.1-introduction","siteSpaceId":"sitesp_BbCLu","description":"🚨 New Data Structure Alert 🚨: Disjoint Sets","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"qIR6WpGWj0B8hGZix6Rs","title":"14.2 Quick Find","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.2-quick-find","siteSpaceId":"sitesp_BbCLu","description":"Keeping track of set membership...","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"RVLQFscX5HZdM9tmdhxR","title":"14.3 Quick Union","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.3-quick-union","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"rU9dF7Di91jCaGZ9E7dU","title":"14.4 Weighted Quick Union (WQU)","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.4-weighted-quick-union-wqu","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"rQbP61HBIiBqcyCczA4E","title":"14.5 Weighted Quick Union with Path Compression","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.5-weighted-quick-union-with-path-compression","siteSpaceId":"sitesp_BbCLu","description":"Weighted Quick Union is pretty good, but we can do even better!","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"pPD0D9YslCIKDOQFQsGz","title":"14.6 Exercises","pathname":"/cs61b-textbook-spring-2026/14.-disjoint-sets/14.6-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"6rxJGQlEyz822NxAWRkY","title":"15. Binary Search Trees","pathname":"/cs61b-textbook-spring-2026/15.-bsts","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"BMxjDSVcLIb7r50JgtfV","title":"15.1 Binary Search Trees","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.1-binary-search-trees","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"ZXIPaiFGJjOZ2xGuwfxn","title":"15.2 BST Definitions","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.2-bst-definitions","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"qdvvhsVPZKkdck1tit9Y","title":"15.3 BST Operations","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.3-bst-operations","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"HJP4RccLxi4dV8Ppq0gc","title":"15.4 BSTs as Sets and Maps","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.4-bsts-as-sets-and-maps","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"n1xtVKbJfXv0K59Xncum","title":"15.5 BST Performance","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.5-bst-performance","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"3MES58tbSunp47SrCGtc","title":"15.6 Big O vs. Worst Case","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.6-big-o-vs.-worst-case","siteSpaceId":"sitesp_BbCLu","description":"A short digression on asymptotics","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"8N30CHUWZUiQCgwKw17r","title":"15.7 Summary","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.7-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"wBYJCrtwn1OBol8nRbnd","title":"15.8 Exercises","pathname":"/cs61b-textbook-spring-2026/15.-bsts/15.8-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"15. Binary Search Trees"}]},{"id":"WFqyOdsXHLUHUKQrpeFY","title":"16. B-Trees","pathname":"/cs61b-textbook-spring-2026/16.-b-trees","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"DCc8qeUa2RWAGuLFRo8P","title":"16.1 B-Tree Operations","pathname":"/cs61b-textbook-spring-2026/16.-b-trees/16.1-b-tree-operations","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"16. B-Trees"}]},{"id":"WbmtZBXantEWpqjbXqj6","title":"16.2 B-Tree Invariants","pathname":"/cs61b-textbook-spring-2026/16.-b-trees/16.2-b-tree-invariants","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"16. B-Trees"}]},{"id":"HaAxwFHSKW9U0J742ZTe","title":"16.3 B-Tree Performance","pathname":"/cs61b-textbook-spring-2026/16.-b-trees/16.3-b-tree-performance","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"16. B-Trees"}]},{"id":"cO93LHFH5SjdnS6NRu2C","title":"16.4 Summary","pathname":"/cs61b-textbook-spring-2026/16.-b-trees/16.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"16. B-Trees"}]},{"id":"KFLX7tW5aF4k8VbcBvdf","title":"16.5 Exercises","pathname":"/cs61b-textbook-spring-2026/16.-b-trees/16.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"16. B-Trees"}]},{"id":"h39nTRGVsDAx0bQ3xpDy","title":"17. Red Black Trees","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees","siteSpaceId":"sitesp_BbCLu","description":"Time for some colors."},{"id":"18gdiBzUlVv2aq0EhDqG","title":"17.1 Rotating Trees","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.1-rotating-trees","siteSpaceId":"sitesp_BbCLu","description":"Just like Ferris Wheels.","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"Qbs4M0YMTFxGbUvQUdFy","title":"17.2 Creating LLRB Trees","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.2-creating-llrb-trees","siteSpaceId":"sitesp_BbCLu","description":"Software Engineers? More like Tree Engineers","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"mOdNoygkKUeyd5Y55FBo","title":"17.3 Inserting LLRB Trees","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.3-inserting-llrb-trees","siteSpaceId":"sitesp_BbCLu","description":"Some Tree Maintenance.","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"eUhpK6CilIetgKtX0pbj","title":"17.4 Runtime Analysis","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.4-runtime-analysis","siteSpaceId":"sitesp_BbCLu","description":"Short and Sweet.","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"JFKDYEmTiwBFIxhqqOZu","title":"17.5 Summary","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.5-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"R6oK5rsSl8MorKf4mgz2","title":"17.6 Exercises","pathname":"/cs61b-textbook-spring-2026/17.-red-black-trees/17.6-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"17. Red Black Trees"}]},{"id":"u540aowTdKlHszRYWnhl","title":"18. Heaps and Priority Queues","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues","siteSpaceId":"sitesp_BbCLu","description":"By Dhruti Pandya and Angel Aldaco"},{"id":"DeTPPDBBRviWxvZsQYDf","title":"18.1 Priority Queues","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues/18.1-priority-queues","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"18. Heaps and Priority Queues"}]},{"id":"mQIyvHVm0SNCTjvoJmL8","title":"18.2 Heaps","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues/18.2-heaps","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"18. Heaps and Priority Queues"}]},{"id":"Yoh6bFwqr6lh3FXPPjH0","title":"18.3 PQ Implementation","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues/18.3-pq-implementation","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"18. Heaps and Priority Queues"}]},{"id":"oXf4lFIwqGk1CZrYwI9Q","title":"18.4 Summary","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues/18.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"18. Heaps and Priority Queues"}]},{"id":"7Dck9H58uvQPkBJLEFf9","title":"18.5 Exercises","pathname":"/cs61b-textbook-spring-2026/18.-heaps-and-priority-queues/18.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"18. Heaps and Priority Queues"}]},{"id":"E5SMfSP69B6NidJdUXnM","title":"19. Tree Traversals and Graphs","pathname":"/cs61b-textbook-spring-2026/19.-tree-traversals-and-graphs","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani and Dhruti Pandya"},{"id":"4FNCSBbxfK3uANheXBP9","title":"19.1 Tree Recap","pathname":"/cs61b-textbook-spring-2026/19.-tree-traversals-and-graphs/19.1-tree-recap","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"19. Tree Traversals and Graphs"}]},{"id":"BDi90sJdo4Nb1FNrtQVM","title":"19.2 Tree Traversals","pathname":"/cs61b-textbook-spring-2026/19.-tree-traversals-and-graphs/19.2-tree-traversals","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"19. Tree Traversals and Graphs"}]},{"id":"WFppdanWr6PLropXKpub","title":"19.3 Graphs","pathname":"/cs61b-textbook-spring-2026/19.-tree-traversals-and-graphs/19.3-graphs","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"19. Tree Traversals and Graphs"}]},{"id":"QKzTmx0wTgkVHjN8pg5C","title":"19.4 Graph Problems","pathname":"/cs61b-textbook-spring-2026/19.-tree-traversals-and-graphs/19.4-graph-problems","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"19. Tree Traversals and Graphs"}]},{"id":"BUSbdARgh9llwo1WqYI6","title":"20. Graph Traversals and Implementations","pathname":"/cs61b-textbook-spring-2026/20.-graph-traversals-and-implementations","siteSpaceId":"sitesp_BbCLu","description":"By William Lee and Mihir Mirchandani"},{"id":"XoPrvSoNqIv1302piH17","title":"20.1 BFS & DFS","pathname":"/cs61b-textbook-spring-2026/20.-graph-traversals-and-implementations/20.1-bfs-and-dfs","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"20. Graph Traversals and Implementations"}]},{"id":"74HNk3XCdhRcdsHVTNqP","title":"20.2 Representing Graphs","pathname":"/cs61b-textbook-spring-2026/20.-graph-traversals-and-implementations/20.2-representing-graphs","siteSpaceId":"sitesp_BbCLu","description":"How do we create a graph in Java?","breadcrumbs":[{"label":"20. Graph Traversals and Implementations"}]},{"id":"W3FAu25dlWBR9HiXfthY","title":"20.3 Summary","pathname":"/cs61b-textbook-spring-2026/20.-graph-traversals-and-implementations/20.3-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"20. Graph Traversals and Implementations"}]},{"id":"Ufv4V7BoFvz1hixAQATJ","title":"20.4 Exercises","pathname":"/cs61b-textbook-spring-2026/20.-graph-traversals-and-implementations/20.4-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"20. Graph Traversals and Implementations"}]},{"id":"PJFRKxtCuT8xE7Ghndoi","title":"21. Shortest Paths","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths","siteSpaceId":"sitesp_BbCLu","description":"By: Mihir Mirchandani and Teresa Luo"},{"id":"6ccKWXFkT97LSNuhmjpB","title":"21.1 Introduction","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths/21.1-introduction","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"21. Shortest Paths"}]},{"id":"clkXoBvx8rQOeI7CCHVd","title":"21.2 Dijkstra's Algorithm","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths/21.2-dijkstras-algorithm","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"21. Shortest Paths"}]},{"id":"pbyFq8mPii3VhRsYdXLs","title":"21.3 A* Algorithm","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths/21.3-a-algorithm","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"21. Shortest Paths"}]},{"id":"yR2NtW8IR10kK33cXw7Y","title":"21.4 Summary","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths/21.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"21. Shortest Paths"}]},{"id":"WtgwNxSNfjO2y1GwEk59","title":"21.5 Exercises","pathname":"/cs61b-textbook-spring-2026/21.-shortest-paths/21.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"21. Shortest Paths"}]},{"id":"DcWcHaNkezJpy0jgUXSO","title":"22. Minimum Spanning Trees","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees","siteSpaceId":"sitesp_BbCLu","description":"By Teresa Luo and Mihir Mirchandani"},{"id":"ftypmAJnbvwYCgJFVDaC","title":"22.1 MSTs and Cut Property","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees/22.1-msts-and-cut-property","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"22. Minimum Spanning Trees"}]},{"id":"ahdUrgFLmUJQQWNdXHkW","title":"22.2 Prim's Algorithm","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees/22.2-prims-algorithm","siteSpaceId":"sitesp_BbCLu","description":"Finding MST.","breadcrumbs":[{"label":"22. Minimum Spanning Trees"}]},{"id":"BLY7vmLggqxIZjlncqwN","title":"22.3 Kruskal's Algorithm","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees/22.3-kruskals-algorithm","siteSpaceId":"sitesp_BbCLu","description":"Finding MST.","breadcrumbs":[{"label":"22. Minimum Spanning Trees"}]},{"id":"4cTU6rdW87WoTvmUILSe","title":"22.4 Chapter Summary","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees/22.4-chapter-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"22. Minimum Spanning Trees"}]},{"id":"sbSrlIi3JEL3MHD8MdbB","title":"22.5 MST Exercises","pathname":"/cs61b-textbook-spring-2026/22.-minimum-spanning-trees/22.5-mst-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"22. Minimum Spanning Trees"}]},{"id":"iJmS2XiqgSQJoy56jSEZ","title":"23. Reductions and Decomposition","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani"},{"id":"T9hMN2tJVxYqD7wb0mq6","title":"23.1 Topological Sorts and DAGs","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition/23.1-topological-sorts-and-dags","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"23. Reductions and Decomposition"}]},{"id":"2IYPcSgvlCSleJgqCyl1","title":"23.2 Shortest Paths on DAGs","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition/23.2-shortest-paths-on-dags","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"23. Reductions and Decomposition"}]},{"id":"sy8WcNiOJOBeA6ia27hd","title":"23.3 Longest Path","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition/23.3-longest-path","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"23. Reductions and Decomposition"}]},{"id":"DV0hiBMwXCJCiHuTqjqB","title":"23.4 Reductions and Decomposition","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition/23.4-reductions-and-decomposition","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"23. Reductions and Decomposition"}]},{"id":"y5dkeostSKB8vuhF3WnJ","title":"23.5 Exercises","pathname":"/cs61b-textbook-spring-2026/23.-reductions-and-decomposition/23.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"23. Reductions and Decomposition"}]},{"id":"WxCkCUZsY5I4SkcODT02","title":"24. Hashing I","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i","siteSpaceId":"sitesp_BbCLu","description":"By William Lee and Angel Aldaco"},{"id":"n5eu3lexGiiKw2F88GcP","title":"24.1 Introduction to Hashing: Data Indexed Arrays","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.1-introduction-to-hashing-data-indexed-arrays","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"DebX0UVxITcXtUWcLTLV","title":"24.1.1 A first attempt: DataIndexedIntegerSet","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.1-introduction-to-hashing-data-indexed-arrays/24.1.1-a-first-attempt-dataindexedintegerset","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"},{"label":"24.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"lY2tRiNFvOKogjfxWFVy","title":"24.1.2 A second attempt: DataIndexedWordSet","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.1-introduction-to-hashing-data-indexed-arrays/24.1.2-a-second-attempt-dataindexedwordset","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"},{"label":"24.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"f8hasVRGDFqgTHlbn1Yj","title":"24.1.3 A third attempt: DataIndexedStringSet","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.1-introduction-to-hashing-data-indexed-arrays/24.1.3-a-third-attempt-dataindexedstringset","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"},{"label":"24.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"im3EjKnalcS04oR8IWvG","title":"24.2 Hash Code","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.2-hash-code","siteSpaceId":"sitesp_BbCLu","description":"The core mechanism of hashing!","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"mzg8hHshmaW0QalwSo1T","title":"24.3 \"Valid\" & \"Good\" Hashcodes","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.3-valid-and-good-hashcodes","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"dM592zUjN0h5IUKcqzmt","title":"24.4 Handling Collisions: Linear Probing and External Chaining","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.4-handling-collisions-linear-probing-and-external-chaining","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"Jg3Gv40W3zcOsffoko6d","title":"24.5 Resizing & Hash Table Performance","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.5-resizing-and-hash-table-performance","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"CpmiLN1AERJIsUZbpg21","title":"24.6 Summary","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.6-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"db7mtYiASjq20mzWsTSP","title":"24.7 Exercises","pathname":"/cs61b-textbook-spring-2026/24.-hashing-i/24.7-exercises","siteSpaceId":"sitesp_BbCLu","breadcrumbs":[{"label":"24. Hashing I"}]},{"id":"e4s1kqTQKVJPICKQSd4m","title":"25. Hashing II","pathname":"/cs61b-textbook-spring-2026/25.-hashing-ii","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani and William Lee"},{"id":"NtqmM7mauyZkP6vnWXEC","title":"25.1 Hash Table Recap, Default Hash Function","pathname":"/cs61b-textbook-spring-2026/25.-hashing-ii/25.1-hash-table-recap-default-hash-function","siteSpaceId":"sitesp_BbCLu","description":"\"The whole point is that we have a bunch of lists that are all short.\" - Professor Hug.","breadcrumbs":[{"label":"25. Hashing II"}]},{"id":"OjlyXOiOJ7mrlCxCRQnP","title":"25.2 Distribution By Other Hash Functions","pathname":"/cs61b-textbook-spring-2026/25.-hashing-ii/25.2-distribution-by-other-hash-functions","siteSpaceId":"sitesp_BbCLu","description":"HashMaps/Tables have fast lookup times, but behind that \"superpower\" is a hash function.","breadcrumbs":[{"label":"25. Hashing II"}]},{"id":"Vrv5OMS9clvP6iCkfDK1","title":"25.3 Contains & Duplicate Items","pathname":"/cs61b-textbook-spring-2026/25.-hashing-ii/25.3-contains-and-duplicate-items","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"25. Hashing II"}]},{"id":"jPzbrsnNjY4SKpLwdxp3","title":"25.4 Mutable vs. Immutable Types","pathname":"/cs61b-textbook-spring-2026/25.-hashing-ii/25.4-mutable-vs.-immutable-types","siteSpaceId":"sitesp_BbCLu","breadcrumbs":[{"label":"25. Hashing II"}]},{"id":"C8TgHQu6xx0csGYZMtu7","title":"26. Prefix Operations and Tries","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries","siteSpaceId":"sitesp_BbCLu","description":"By: Thomas Lee"},{"id":"ol9Savx3GPHlybBhNuTG","title":"26.1 Introduction to Tries","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries/26.1-introduction-to-tries","siteSpaceId":"sitesp_BbCLu","description":"Do or do not. There is no Trie.","breadcrumbs":[{"label":"26. Prefix Operations and Tries"}]},{"id":"4zm3MTcxJNNASlvGP3J8","title":"26.2 Trie Implementation","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries/26.2-trie-implementation","siteSpaceId":"sitesp_BbCLu","description":"Giving it the old college Trie.","breadcrumbs":[{"label":"26. Prefix Operations and Tries"}]},{"id":"p4gQUHSULWYyvMTPHUy7","title":"26.3 Trie String Operations","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries/26.3-trie-string-operations","siteSpaceId":"sitesp_BbCLu","description":"Trie, Trie again.","breadcrumbs":[{"label":"26. Prefix Operations and Tries"}]},{"id":"6OhXKzzZyjgX8NzWuiYF","title":"26.4 Summary","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries/26.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"26. Prefix Operations and Tries"}]},{"id":"rSdZECFFi7p95uwWJv7e","title":"26.5 Exercises","pathname":"/cs61b-textbook-spring-2026/26.-prefix-operations-and-tries/26.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"26. Prefix Operations and Tries"}]},{"id":"sM9B3N1Ga00j2opf0VnQ","title":"27. Software Engineering I","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i","siteSpaceId":"sitesp_BbCLu","description":"By Aniruth Narayanan"},{"id":"zvhTQIuLwh6J510Va1WZ","title":"27.1 Introduction to Software Engineering","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i/27.1-introduction-to-software-engineering","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"27. Software Engineering I"}]},{"id":"tiExU3S0mtRTk9sO8CEH","title":"27.2 Complexity","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i/27.2-complexity","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"27. Software Engineering I"}]},{"id":"kjHIuHgH6ARXUhlojwlC","title":"27.3 Strategic vs Tactical Programming","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i/27.3-strategic-vs-tactical-programming","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"27. Software Engineering I"}]},{"id":"IeEFTcbJSIDPOY2roEim","title":"27.4 Real World Examples","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i/27.4-real-world-examples","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"27. Software Engineering I"}]},{"id":"OqKW5Sk4qoy5xPiRKHXF","title":"27.5 Summary, Exercises","pathname":"/cs61b-textbook-spring-2026/27.-software-engineering-i/27.5-summary-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"27. Software Engineering I"}]},{"id":"F2HDXNNtZY20P6uActyt","title":"28. Software Engineering II","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii","siteSpaceId":"sitesp_BbCLu","description":"By Thomas Lee and Mihir Mirchandani"},{"id":"vIZ221r0UhgQXy4T6Jkp","title":"28.1 Complexity II","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii/28.1-complexity-ii","siteSpaceId":"sitesp_BbCLu","description":"Complexity comshmexity.","breadcrumbs":[{"label":"28. Software Engineering II"}]},{"id":"ODh7z9j4D7jXUOUSH7kI","title":"28.2 Sources of Complexity","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii/28.2-sources-of-complexity","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"28. Software Engineering II"}]},{"id":"vMkBsUO2YR1iyYozWTct","title":"28.3 Modular Design","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii/28.3-modular-design","siteSpaceId":"sitesp_BbCLu","description":"A tool for managing complexity.","breadcrumbs":[{"label":"28. Software Engineering II"}]},{"id":"muxkoFsGBciHgu74mhxh","title":"28.4 Teamwork","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii/28.4-teamwork","siteSpaceId":"sitesp_BbCLu","description":"\"There is no I in TEAM\"","breadcrumbs":[{"label":"28. Software Engineering II"}]},{"id":"4bLYEmSAvdWPiAvgUhsY","title":"28.5 Exerises","pathname":"/cs61b-textbook-spring-2026/28.-software-engineering-ii/28.5-exerises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"28. Software Engineering II"}]},{"id":"ji104PYPcqL5Dhibe7O3","title":"29. Basic Sorts","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"Vv5obduDeDiNQbqN3wMe","title":"29.1 The Sorting Problem","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.1-the-sorting-problem","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"bPgniC0D9R3VrS36R6hw","title":"29.2 Selection Sort & Heapsort","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.2-selection-sort-and-heapsort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"blp5f0DMocGjQ1iod47v","title":"29.3 Mergesort","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.3-mergesort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"ysKCAUfdS584wwXB6mQU","title":"29.4 Insertion Sort","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.4-insertion-sort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"zextefqD7fNRD84EmM5D","title":"29.5 Summary","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.5-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"jDtFwa6nBm65H1AyVxTo","title":"29.6 Exercises","pathname":"/cs61b-textbook-spring-2026/29.-basic-sorts/29.6-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"29. Basic Sorts"}]},{"id":"teuVs7WGuvG8h5RPPyYy","title":"30. Quicksort","pathname":"/cs61b-textbook-spring-2026/30.-quicksort","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"m9S1Ql6hJ2LnAENASeDH","title":"30.1 Partitioning","pathname":"/cs61b-textbook-spring-2026/30.-quicksort/30.1-partitioning","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"30. Quicksort"}]},{"id":"Sqx7zZRpvvbIi1slPpbK","title":"30.2 Quicksort Algorithm","pathname":"/cs61b-textbook-spring-2026/30.-quicksort/30.2-quicksort-algorithm","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"30. Quicksort"}]},{"id":"DacBmMtL6CoJk0wSIm5w","title":"30.3 Quicksort Performance Caveats","pathname":"/cs61b-textbook-spring-2026/30.-quicksort/30.3-quicksort-performance-caveats","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"30. Quicksort"}]},{"id":"nXI2f07njf3AXCyoAgit","title":"30.4 Summary","pathname":"/cs61b-textbook-spring-2026/30.-quicksort/30.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"30. Quicksort"}]},{"id":"qsJYTnBQa9gMGepgeEUB","title":"30.5 Exercises","pathname":"/cs61b-textbook-spring-2026/30.-quicksort/30.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"30. Quicksort"}]},{"id":"RAduTfjaUKG8Zzp50VY8","title":"31. More Quick Sort, Sorting Summary","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary","siteSpaceId":"sitesp_BbCLu","description":"By Teresa Luo and Nathalys Pham"},{"id":"lonumE7ILjco5MSXBxv9","title":"31.1 Quicksort Flavors vs. MergeSort","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary/31.1-quicksort-flavors-vs.-mergesort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"31. More Quick Sort, Sorting Summary"}]},{"id":"HuT6ZvRi64TGGFC0Vqcr","title":"31.2 Quick Select","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary/31.2-quick-select","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"31. More Quick Sort, Sorting Summary"}]},{"id":"1m12Nmh7M3nMen3Y2gB6","title":"31.3 Stability, Adaptiveness, and Optimization","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary/31.3-stability-adaptiveness-and-optimization","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"31. More Quick Sort, Sorting Summary"}]},{"id":"C7s5WyeENotyR1RwnXhk","title":"31.4 Summary","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary/31.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"31. More Quick Sort, Sorting Summary"}]},{"id":"UOl2HHJipCoTsIAwo0bz","title":"31.5 Exercises","pathname":"/cs61b-textbook-spring-2026/31.-more-quick-sort-sorting-summary/31.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"31. More Quick Sort, Sorting Summary"}]},{"id":"S2A4llkfTwrqDMjbAF0E","title":"32. Sorting and Algorithmic Bounds","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds","siteSpaceId":"sitesp_BbCLu","description":"By William Lee and Angel Aldaco"},{"id":"YoyNKm7M8yYHDOA9Exhs","title":"32.1 Sorting Summary","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds/32.1-sorting-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"32. Sorting and Algorithmic Bounds"}]},{"id":"TumJVRxlT9wBzBsqsngr","title":"32.2 Math Problems Out of Nowhere","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds/32.2-math-problems-out-of-nowhere","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"32. Sorting and Algorithmic Bounds"}]},{"id":"HOrvNQxQB1H96tis4rOR","title":"32.3 Theoretical Bounds on Sorting","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds/32.3-theoretical-bounds-on-sorting","siteSpaceId":"sitesp_BbCLu","description":"What is the best time we can get for sorting?","breadcrumbs":[{"label":"32. Sorting and Algorithmic Bounds"}]},{"id":"VQdZv13YqtZRk6A4UkjN","title":"32.4 Summary","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds/32.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"32. Sorting and Algorithmic Bounds"}]},{"id":"7fOK1KIlrEUNTs58nWRh","title":"32.5 Exercises","pathname":"/cs61b-textbook-spring-2026/32.-sorting-and-algorithmic-bounds/32.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"32. Sorting and Algorithmic Bounds"}]},{"id":"B49GsAgnl6ynWULJRkNe","title":"33. Radix Sorts","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani"},{"id":"edgUUSVoyToFCBZ5jD8N","title":"33.1 Counting Sort","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts/33.1-counting-sort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"33. Radix Sorts"}]},{"id":"jTP4k8DM4ZFWqAwhRuzC","title":"33.2 LSD Radix Sort","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts/33.2-lsd-radix-sort","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"33. Radix Sorts"}]},{"id":"XQthPANvJuPJHOEMxAAR","title":"33.3 MSD Radix Sort","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts/33.3-msd-radix-sort","siteSpaceId":"sitesp_BbCLu","description":"Basic idea: Just like LSD, but sort from leftmost digit towards the right.","breadcrumbs":[{"label":"33. Radix Sorts"}]},{"id":"48Zl5hoTxBCAZS7kirGe","title":"33.4 Summary","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts/33.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"33. Radix Sorts"}]},{"id":"zMNjqyReDoDqyooxxtQF","title":"33.5 Exercises","pathname":"/cs61b-textbook-spring-2026/33.-radix-sorts/33.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"33. Radix Sorts"}]},{"id":"7HIr6oXYPVEpWSquzlIw","title":"34. Sorting and Data Structures Conclusion","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani and William Lee"},{"id":"faONhKcJDJfKhIw4W87s","title":"34.1 Radix vs. Comparison Sorting","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion/34.1-radix-vs.-comparison-sorting","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"34. Sorting and Data Structures Conclusion"}]},{"id":"aZKqC6qzIP67fzRBvjpZ","title":"34.2 The Just-In-Time Compiler","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion/34.2-the-just-in-time-compiler","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"34. Sorting and Data Structures Conclusion"}]},{"id":"4kLv8AX3fCXox2r6Iz7A","title":"34.3 Radix Sorting Integers","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion/34.3-radix-sorting-integers","siteSpaceId":"sitesp_BbCLu","description":"ft. Obama","breadcrumbs":[{"label":"34. Sorting and Data Structures Conclusion"}]},{"id":"ZPF22ILgV1i3uFIjfkh0","title":"34.4 Summary","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion/34.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"34. Sorting and Data Structures Conclusion"}]},{"id":"82O98QLTCMPPKNWiqDEk","title":"34.5 Exercises","pathname":"/cs61b-textbook-spring-2026/34.-sorting-and-data-structures-conclusion/34.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"34. Sorting and Data Structures Conclusion"}]},{"id":"oOqeKmafG2IO7nnr869O","title":"35. Software Engineering III","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii","siteSpaceId":"sitesp_BbCLu","description":"By William Lee and Teresa Luo"},{"id":"VnmzXmd7AKVEQP8kIyXV","title":"35.1 Candy Crush, SnapChat, and Friends","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii/35.1-candy-crush-snapchat-and-friends","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"35. Software Engineering III"}]},{"id":"21NyPI7SnjC6nWleTtE9","title":"35.2 The Ledger of Harms","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii/35.2-the-ledger-of-harms","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"35. Software Engineering III"}]},{"id":"Ky3cxJQhUKno5B2FSq4k","title":"35.3 Your Life","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii/35.3-your-life","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"35. Software Engineering III"}]},{"id":"YAnVYShkOZbeWiBvLGVG","title":"35.4 Summary","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii/35.4-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"35. Software Engineering III"}]},{"id":"EXxIL3Ked2hRzDqlDnI5","title":"35.5 Exercises","pathname":"/cs61b-textbook-spring-2026/35.-software-engineering-iii/35.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"35. Software Engineering III"}]},{"id":"eHqFMYUMT2GSHzL3BH1W","title":"36. Software Engineering IV","pathname":"/cs61b-textbook-spring-2026/36.-software-engineering-iv","siteSpaceId":"sitesp_BbCLu","description":"By Mihir Mirchandani"},{"id":"GbAz4742uCtskithYIeV","title":"36.1 The end is near","pathname":"/cs61b-textbook-spring-2026/36.-software-engineering-iv/36.1-the-end-is-near","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"36. Software Engineering IV"}]},{"id":"dYBlyRmehcvanmxqhUFB","title":"37. Compression and Complexity","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity","siteSpaceId":"sitesp_BbCLu","description":"By Dhruti Pandya and Stella Kaval"},{"id":"LdzlF5DxcOKf5I8zzRIB","title":"37.1 Introduction to Compression","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.1-introduction-to-compression","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"5QJTaLbTsF0GL6f8IQfh","title":"37.2 Prefix-free Codes","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.2-prefix-free-codes","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"RNSo8tO0jXLS5bCL5F99","title":"37.3 Shannon-Fano Codes","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.3-shannon-fano-codes","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"hvcZVUnJj3rV5dZjlcTK","title":"37.4 Huffman Coding Conceptuals","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.4-huffman-coding-conceptuals","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"9OEovpyZwWed1dVV7c2U","title":"37.5 Compression Theory","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.5-compression-theory","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"2umIWHCMwq0HBMstv82G","title":"37.6 LZW Compression","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.6-lzw-compression","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"g2au2q9R93QNhNGm8ah5","title":"37.7 Summary","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.7-summary","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"sXLDEr2a9zdzsAf6Q0sO","title":"37.8 Exercises","pathname":"/cs61b-textbook-spring-2026/37.-compression-and-complexity/37.8-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"37. Compression and Complexity"}]},{"id":"4BFGO81KybCVt5pRHOwk","title":"38. Compression, Complexity, P = NP","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np","siteSpaceId":"sitesp_BbCLu","description":""},{"id":"djnSbsaXpxEnWdI9KIA3","title":"38.1 Models of Compression","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np/38.1-models-of-compression","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"38. Compression, Complexity, P = NP"}]},{"id":"5E7T8Z5NRF0rvpeb0ieh","title":"38.2 Optimal Compression, Kolmogorov Complexity","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np/38.2-optimal-compression-kolmogorov-complexity","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"38. Compression, Complexity, P = NP"}]},{"id":"mGC8C5PBfRqfYiz9ZKZD","title":"38.3 Space/Time-Bounded Compression","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np/38.3-space-time-bounded-compression","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"38. Compression, Complexity, P = NP"}]},{"id":"R6lSrU7DPbKHOJ2Hdexj","title":"38.4 P = NP","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np/38.4-p-np","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"38. Compression, Complexity, P = NP"}]},{"id":"3yjjPDOR07e9lYvl9CxM","title":"38.5 Exercises","pathname":"/cs61b-textbook-spring-2026/38.-compression-complexity-p-np/38.5-exercises","siteSpaceId":"sitesp_BbCLu","description":"","breadcrumbs":[{"label":"38. Compression, Complexity, P = NP"}]}]}