К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Data Structures · LearnSpace
Назад в каталог
courseraПрограммирование

Data Structures

Курс от University of California San Diego
Средний≈ 22.7 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this online course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures. A few examples of questions that we are going to cover in this class are the following: 1. What is a good strategy of resizing a dynamic array? 2. How priority queues are implemented in C++, Java, and Python? 3. How to implement a hash table so that the amortized running time of all operations is O(1) on average? 4. What are good strategies to keep a binary tree balanced? You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space!

Навыки, которые вы освоите

Data StructuresAlgorithmsData StorageC++ (Programming Language)Java ProgrammingGraph TheoryComputer Programming

Программа курса

6 модулей · 94 учебных материалов

01Basic Data Structures16 материалов

Welcome

WelcomeЧтение

Arrays and Linked Lists

ArraysВидеоSingly-Linked ListsВидеоDoubly-Linked ListsВидео

Учитесь у экспертов

Neil Rhodes

Adjunct Faculty

Daniel M Kane

Assistant Professor

Michael Levin

Visiting Scholar

Michael Levin

Lecturer

Alexander S. Kulikov

Professor

Data Structures
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 22.7 ч

6 модулей

Язык: Английский

Субтитры: Арабский, Французский, Бенгальский, Узбекский, Украинский, Китайский (Китай), Греческий, Итальянский, Бразильский португальский, Вьетнамский, Нидерландский, Корейский, Немецкий, Пушту, Урду, Русский, Тайский, Индонезийский, Шведский, Турецкий, Азербайджанский, Испанский, Дари, Хинди, Японский, Казахский, Венгерский, Польский

Часть программы вашего университета
Slides and External ReferencesЧтение

Stacks and Queues

StacksВидеоQueuesВидеоSlides and External ReferencesЧтение

Trees

TreesВидеоTree TraversalВидеоSlides and External ReferencesЧтениеBasic Data StructuresЗадание

Programming Assignment 1

Available Programming LanguagesЧтениеFAQ on Programming AssignmentsЧтениеProgramming Assignment 1: Basic Data StructuresПрограммирование

Acknowledgements (Optional)

AcknowledgementsЧтение
02Dynamic Arrays and Amortized Analysis7 материалов

Dynamic Arrays and Amortized Analysis

Dynamic ArraysВидеоAmortized Analysis: Aggregate MethodВидеоAmortized Analysis: Banker's MethodВидеоAmortized Analysis: Physicist's MethodВидеоAmortized Analysis: SummaryВидеоDynamic Arrays and Amortized AnalysisЗаданиеSlides and External ReferencesЧтение
03Priority Queues and Disjoint Sets26 материалов

Priority Queues: Introduction

IntroductionВидеоNaive Implementations of Priority QueuesВидеоSlidesЧтение

Priority Queues: Heaps

Binary TreesВидеоTree Height RemarkЧтениеBasic OperationsВидеоComplete Binary TreesВидеоPseudocodeВидеоSlides and External ReferencesЧтение

Priority Queues: Heap Sort

Heap SortВидеоBuilding a HeapВидеоFinal RemarksВидеоPriority Queues: QuizЗаданиеSlides and External ReferencesЧтение

Disjoint Sets: Naive Implementations

OverviewВидеоNaive ImplementationsВидеоSlides and External ReferencesЧтение

Disjoint Sets: Efficient Implementation

Trees for Disjoint SetsВидеоUnion by RankВидеоPath CompressionВидеоAnalysis (Optional)ВидеоQuiz: Disjoint SetsЗаданиеSlides and External ReferencesЧтение

Programming Assignment 2

Priority Queues and Disjoint SetsЗаданиеProgramming Assignment 2: Priority Queues and Disjoint SetsПрограммирование

Survey

SurveyPLUGIN
04Hash Tables27 материалов

Introduction, Direct Addressing and Chaining

Applications of HashingВидеоAnalysing Service Access LogsВидеоDirect AddressingВидеоHash FunctionsВидеоChainingВидеоChaining Implementation and AnalysisВидеоHash TablesВидеоSlides and External ReferencesЧтение

Hash Functions

Phone Book Data StructureВидеоUniversal FamilyВидеоHashing Phone NumbersВидеоHashing NamesВидеоAnalysis of Polynomial HashingВидеоSlides and External ReferencesЧтениеHash Tables and Hash Functions

Search Substring

Find Substring in TextВидеоRabin-Karp's AlgorithmВидеоRecurrence for Substring HashesВидеоImproving Running TimeВидеоSlides and External ReferencesЧтение

Blockchain

Julia's DiaryВидеоJulia's BankВидеоBlockchainВидеоMerkle TreeВидеоSlides and External ReferencesЧтение

Programming Assignment 3

HashingЗаданиеProgramming Assignment 3: Hash TablesПрограммирование
05Binary Search Trees10 материалов

Binary Search Trees

IntroductionВидеоSearch TreesВидеоBasic OperationsВидеоBalanceВидеоSlides and External ReferencesЧтение

AVL Trees

AVL TreesВидеоAVL Tree ImplementationВидеоSplit and MergeВидеоSlides and External ReferencesЧтениеBinary Search TreesЗадание
06Binary Search Trees 28 материалов

Applications

ApplicationsВидеоSlides and External ReferencesЧтение

Splay Trees

Splay Trees: IntroductionВидеоSplay Trees: ImplementationВидео(Optional) Splay Trees: AnalysisВидеоSlides and External ReferencesЧтение

Programming Assignment 4

Splay TreesЗаданиеProgramming Assignment 4: Binary Search TreesПрограммирование
Задание