Trees and Graphs: Basics

Brought by: Coursera

Overview

Basic algorithms on tree data structures, binary search trees, self-balancing trees, graph data structures and basic traversal algorithms on graphs. This course also covers advanced topics such as kd-trees for spatial data and algorithms for spatial data.

Trees and Graphs: Basics can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at https://www.coursera.org/degrees/master-of-science-data-science-boulder.

Syllabus

  • Binary Search Trees and Algorithms on Trees
    • In this module, you will learn about binary search trees and basic algorithms on binary search trees. We will also become familiar with the problem of balancing in binary search trees and study some solutions for balanced binary search trees such as Red-Black Trees.
  • Basics of Graphs and Graphs Traversals
    • In this module, you will learn about graphs and various basic algorithms on graphs such as depth first/breadth first traversals, finding strongly connected components, and topological sorting.
  • Union-Find Data Structures and Spanning Tree Algorithms
    • Union Find Data-structure with rank compression.
      Spanning trees and properties of spanning trees.
      Prim’s algorithm for finding minimal spanning trees.
      Kruskal’s algorithm for finding minimal spanning trees.
  • Shortest Path Algorithms
    • In this module, you will learn about:
      Shortest Path Problem: Basics.
      Bellman-Ford Algorithm for single source shortest path.
      Dijkstra’s algorithm.
      Algorithms for all-pairs shortest path problem (Floyd-Warshall Algorithm)

Taught by

Sriram Sankaranarayanan

Trees and Graphs: Basics
Go to course

Trees and Graphs: Basics

Brought by: Coursera

  • Coursera
  • Free
  • English
  • Certificate Available
  • Available at any time
  • All
  • English, Arabic, French, Portuguese, German, Thai, Indonesian, Spanish, Kazakh, Hindi, Russian, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version336msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (214ms)
    • Application (121ms)
    • 1 x Booting (63.64%)
      213.78ms
      1 x Application (36.11%)
      121.32ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.56ms
      • select * from `courses` where `slug_en` = 'trees-and-graphs:-basics' limit 1
        3.17ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. trees-and-graphs:-basics
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-21 16:29:12' where `id` = 240
        450μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-21 16:29:12
        • 1. 240
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (6)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (49) and `institutions`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 237 limit 1
        290μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 237
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        Cdf1Qra5ITcxtUp9mJ0HVkWTLLaXSe9SxekUgjYL
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/trees-and-graphs:-basics" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/trees-and-graphs:-basics
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.143.246.80" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "933e4248d92eeb03-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.143.246.80" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.143.246.80" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "933e4248d92eeb03-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.143.246.80" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "14678" "REMOTE_ADDR" => "172.71.255.91" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/trees-and-graphs:-basics" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1745252952.7323 "REQUEST_TIME" => 1745252952 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 21 Apr 2025 16:29:13 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InFPZWlUcjArcFl1RnFpaXd2RFJnZmc9PSIsInZhbHVlIjoiMW52eHhnbm9GWk1oVTVOdkwzWWpybGVqRDd2NnNqM0l6YllXVTRQcGdWdGVNMTFCTGU2a005MmF0NklObUR1b2dWUnVoWW1NeFRWZzFNVWtoTU85ak5zYUswTDQ3Y1AwTW1lUElNVHNlQVVVV1lEYkoxL1I5MEZEQjFjVll6eDQiLCJtYWMiOiI4YTU3MmFkM2QyZjQ2YTBlZjkyNGU3MmQ3ZWExYjA4ZDQ5MDIxNDgxZjE0NjQxMGZlOTRhYjhlZGJkMzQ0ZjVjIiwidGFnIjoiIn0%3D; expires=Mon, 21 Apr 2025 18:29:13 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6InFPZWlUcjArcFl1RnFpaXd2RFJnZmc9PSIsInZhbHVlIjoiMW52eHhnbm9GWk1oVTVOdkwzWWpybGVqRDd2NnNqM0l6YllXVTRQcGdWdGVNMTFCTGU2a005MmF0NklObUR1b2dWUnVoW" 1 => "laravel_session=eyJpdiI6IjF0WFdESHZsbzdRbFNxYkd5M1puOEE9PSIsInZhbHVlIjoiTXFnMXNaUFlRV2VkQnM1Mkhrc0h0emcvUDYyVzhyRXBkTWMxTGlvalpwbUpFTkt4ZURYQVo1Vkc4VHJkM3drVTBmQjdRenduZDVoNHlSMW1wMm11ejZJdVh3SjQ0SHJkaUdtZWpieXZ4b1pjN2tLbzZ2UkpjVlVycmZIRkZ2eWgiLCJtYWMiOiJmMGRkNzFhNWE5NjhkMzVlZjVjYjhmNDMwMzNjMTMwYjllOGM1ZjZmYmFkNzQwNWYwYmY1ZTFiZjM1ZTYwMzk5IiwidGFnIjoiIn0%3D; expires=Mon, 21 Apr 2025 18:29:13 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjF0WFdESHZsbzdRbFNxYkd5M1puOEE9PSIsInZhbHVlIjoiTXFnMXNaUFlRV2VkQnM1Mkhrc0h0emcvUDYyVzhyRXBkTWMxTGlvalpwbUpFTkt4ZURYQVo1Vkc4VHJkM3drVTBm" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InFPZWlUcjArcFl1RnFpaXd2RFJnZmc9PSIsInZhbHVlIjoiMW52eHhnbm9GWk1oVTVOdkwzWWpybGVqRDd2NnNqM0l6YllXVTRQcGdWdGVNMTFCTGU2a005MmF0NklObUR1b2dWUnVoWW1NeFRWZzFNVWtoTU85ak5zYUswTDQ3Y1AwTW1lUElNVHNlQVVVV1lEYkoxL1I5MEZEQjFjVll6eDQiLCJtYWMiOiI4YTU3MmFkM2QyZjQ2YTBlZjkyNGU3MmQ3ZWExYjA4ZDQ5MDIxNDgxZjE0NjQxMGZlOTRhYjhlZGJkMzQ0ZjVjIiwidGFnIjoiIn0%3D; expires=Mon, 21-Apr-2025 18:29:13 GMT; path=/XSRF-TOKEN=eyJpdiI6InFPZWlUcjArcFl1RnFpaXd2RFJnZmc9PSIsInZhbHVlIjoiMW52eHhnbm9GWk1oVTVOdkwzWWpybGVqRDd2NnNqM0l6YllXVTRQcGdWdGVNMTFCTGU2a005MmF0NklObUR1b2dWUnVoW" 1 => "laravel_session=eyJpdiI6IjF0WFdESHZsbzdRbFNxYkd5M1puOEE9PSIsInZhbHVlIjoiTXFnMXNaUFlRV2VkQnM1Mkhrc0h0emcvUDYyVzhyRXBkTWMxTGlvalpwbUpFTkt4ZURYQVo1Vkc4VHJkM3drVTBmQjdRenduZDVoNHlSMW1wMm11ejZJdVh3SjQ0SHJkaUdtZWpieXZ4b1pjN2tLbzZ2UkpjVlVycmZIRkZ2eWgiLCJtYWMiOiJmMGRkNzFhNWE5NjhkMzVlZjVjYjhmNDMwMzNjMTMwYjllOGM1ZjZmYmFkNzQwNWYwYmY1ZTFiZjM1ZTYwMzk5IiwidGFnIjoiIn0%3D; expires=Mon, 21-Apr-2025 18:29:13 GMT; path=/; httponlylaravel_session=eyJpdiI6IjF0WFdESHZsbzdRbFNxYkd5M1puOEE9PSIsInZhbHVlIjoiTXFnMXNaUFlRV2VkQnM1Mkhrc0h0emcvUDYyVzhyRXBkTWMxTGlvalpwbUpFTkt4ZURYQVo1Vkc4VHJkM3drVTBm" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "Cdf1Qra5ITcxtUp9mJ0HVkWTLLaXSe9SxekUgjYL" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/trees-and-graphs:-basics" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]