Introduction to Non-linear Data Structures in Swift

بواسطة: Codecademy

Overview

Learn about more complex data structures and implement them in the Swift programming language.

Data structures are a fundamental component of computer science. By understanding how these building blocks work, you'll be better able to build software and appreciate why API design decisions are made.



### Take-Away Skills

This course teaches you how to build complex data structures like graphs, heaps, and binary search trees from scratch. You'll also learn how to use these structures to access, add and remove information.

Syllabus

  • Nonlinear Data Structures in Swift: Get a general overview of nonlinear data structures in Swift and what's to come in this course!
    • Article: Nonlinear Data Structures in Swift
  • Trees: Learn how to build a tree in Swift.
    • Lesson: Trees: Conceptual
    • Quiz: Trees: Conceptual
    • Lesson: Trees: Swift
    • Quiz: Trees: Swift Quiz
  • Heaps: Learn how to build a heap in Swift.
    • Lesson: Heaps: Conceptual
    • Quiz: Heaps: Conceptual
    • Lesson: Heaps: Swift
    • Quiz: Heaps: Swift
  • Binary Search Trees: Learn how to build a binary search tree in Swift.
    • Lesson: Binary Search Trees: Swift
    • Quiz: Binary Search Tree: Swift
  • Graphs: Learn how to build graphs in Swift.
    • Lesson: Graphs: Conceptual
    • Quiz: Graphs: Conceptual
    • Lesson: Graphs: Swift
    • Quiz: Graphs: Swift
  • Graph Search: Learn how to implement a graph search algorithm in Swift.
    • Lesson: Graph Search: Swift
    • Quiz: Graph Search: Quiz
Introduction to Non-linear Data Structures in Swift
الذهاب الي الدورة

Introduction to Non-linear Data Structures in Swift

بواسطة: Codecademy

  • Codecademy
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • advanced
  • N/A
8.1.2PHP Version1000msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (654ms)
    • Application (343ms)
    • 1 x Booting (65.47%)
      654.43ms
      1 x Application (34.28%)
      342.65ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed11.04ms
      • select * from `courses` where `slug_ar` = 'introduction-to-non-linear-data-structures-in-swift' limit 1
        9.73ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-to-non-linear-data-structures-in-swift
        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-06-13 13:55:11' where `id` = 3297
        400μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-13 13:55:11
        • 1. 3297
        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)
        280μ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)
        180μ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 `providers` where `providers`.`id` in (53) and `providers`.`deleted_at` is null
        200μ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` = 3288 limit 1
        250μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 3288
        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\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        lfRDzoACwTw8951QVaChUAiXwSQyKVCHeBE41UBg
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introd...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-non-linear-data-structures-in-swift
        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 => "216.73.216.220" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.220" ] "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 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "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 => "94f21583dc37eaff-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" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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" => "216.73.216.220" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.220" "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" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94f21583dc37eaff-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => "39740" "REMOTE_ADDR" => "172.71.254.180" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-non-linear-data-structures-in-swift" "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" => 1749822910.3195 "REQUEST_TIME" => 1749822910 ]
        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 => "Fri, 13 Jun 2025 13:55:11 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZPTlY5VEo3emJFZE13Ulh3SHVuVXc9PSIsInZhbHVlIjoiRFpyMlZXOW03VzhWTUduNTlZeERETW1Tc2N3V1h3TTRvNCtIeGtzWVJtMGxXdlkxaHFpNEFCdkFQVGhNaHdmaUNpdVVVZk1YMnZzWHErdTA3NVo4ZVZtaURWazZFL1gwNTNXalFTRU5Dai9lVFN0czhRRmQzd2NleE94VkFPc1giLCJtYWMiOiIxNTA2MTBlM2E5OTA4YzczNGU2YWE5MjM2ZTJlZTdlZWU2MmQ1NWU0Yjk3ODMxODlhNjAxZmQwMDI3MmJkOTdmIiwidGFnIjoiIn0%3D; expires=Fri, 13 Jun 2025 15:55:11 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkZPTlY5VEo3emJFZE13Ulh3SHVuVXc9PSIsInZhbHVlIjoiRFpyMlZXOW03VzhWTUduNTlZeERETW1Tc2N3V1h3TTRvNCtIeGtzWVJtMGxXdlkxaHFpNEFCdkFQVGhNaHdmaUNpdVVVZ" 1 => "laravel_session=eyJpdiI6IjdESTltYTFGdDBWNDR2RXhKRlBBTGc9PSIsInZhbHVlIjoiRmdkK2ZqYlRvZXBLMlIycVpuVzJMOVhxK2o4eW1kMFovdmlQU0UzbXhkQ2ZnNzhpTUJjZnVKMmRtcXBFaUNGSmVOTE9SR3Z2ZkZxVlVRaUxBRmRvTndjUFNUZ3ZHWkVRMVd2UmJncm1VbXJYY0FnYUhaVko5Sk9zRUhGM2lHd1oiLCJtYWMiOiIxNDEzNmFiNGUwY2NhMzlmNzQ2YzFlY2E1N2Q3YjVkZTdmNzE5OWMwMDA2MWJkMjJkNThlNTYxMTliYWFkZDk5IiwidGFnIjoiIn0%3D; expires=Fri, 13 Jun 2025 15:55:11 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjdESTltYTFGdDBWNDR2RXhKRlBBTGc9PSIsInZhbHVlIjoiRmdkK2ZqYlRvZXBLMlIycVpuVzJMOVhxK2o4eW1kMFovdmlQU0UzbXhkQ2ZnNzhpTUJjZnVKMmRtcXBFaUNGSmVO" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZPTlY5VEo3emJFZE13Ulh3SHVuVXc9PSIsInZhbHVlIjoiRFpyMlZXOW03VzhWTUduNTlZeERETW1Tc2N3V1h3TTRvNCtIeGtzWVJtMGxXdlkxaHFpNEFCdkFQVGhNaHdmaUNpdVVVZk1YMnZzWHErdTA3NVo4ZVZtaURWazZFL1gwNTNXalFTRU5Dai9lVFN0czhRRmQzd2NleE94VkFPc1giLCJtYWMiOiIxNTA2MTBlM2E5OTA4YzczNGU2YWE5MjM2ZTJlZTdlZWU2MmQ1NWU0Yjk3ODMxODlhNjAxZmQwMDI3MmJkOTdmIiwidGFnIjoiIn0%3D; expires=Fri, 13-Jun-2025 15:55:11 GMT; path=/XSRF-TOKEN=eyJpdiI6IkZPTlY5VEo3emJFZE13Ulh3SHVuVXc9PSIsInZhbHVlIjoiRFpyMlZXOW03VzhWTUduNTlZeERETW1Tc2N3V1h3TTRvNCtIeGtzWVJtMGxXdlkxaHFpNEFCdkFQVGhNaHdmaUNpdVVVZ" 1 => "laravel_session=eyJpdiI6IjdESTltYTFGdDBWNDR2RXhKRlBBTGc9PSIsInZhbHVlIjoiRmdkK2ZqYlRvZXBLMlIycVpuVzJMOVhxK2o4eW1kMFovdmlQU0UzbXhkQ2ZnNzhpTUJjZnVKMmRtcXBFaUNGSmVOTE9SR3Z2ZkZxVlVRaUxBRmRvTndjUFNUZ3ZHWkVRMVd2UmJncm1VbXJYY0FnYUhaVko5Sk9zRUhGM2lHd1oiLCJtYWMiOiIxNDEzNmFiNGUwY2NhMzlmNzQ2YzFlY2E1N2Q3YjVkZTdmNzE5OWMwMDA2MWJkMjJkNThlNTYxMTliYWFkZDk5IiwidGFnIjoiIn0%3D; expires=Fri, 13-Jun-2025 15:55:11 GMT; path=/; httponlylaravel_session=eyJpdiI6IjdESTltYTFGdDBWNDR2RXhKRlBBTGc9PSIsInZhbHVlIjoiRmdkK2ZqYlRvZXBLMlIycVpuVzJMOVhxK2o4eW1kMFovdmlQU0UzbXhkQ2ZnNzhpTUJjZnVKMmRtcXBFaUNGSmVO" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "lfRDzoACwTw8951QVaChUAiXwSQyKVCHeBE41UBg" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-non-linear-data-structures-in-swift" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]