We may earn an affiliate commission when you visit our partners.
Prof. Ming Zhang 张铭

学了C/C++ 语言,我们已经会编程解题了,那怎么用来处理实际的问题呢?

怎么设计数据结构来有效地管理企业人员?如何编写程序没让人才和岗位达到最佳匹配?如何安排旅行计划,找到最佳行程路径?这些学习、工作、生活中常常困扰我们的问题,你将在《数据结构基础》课程中找到答案。

数据结构是计算机程序设计的基础,告诉我们数据在计算机里是如何组织与存储的,能帮助我们刻画实际问题中的信息及其相互关系。当我们对一个实际问题本身有了一个结构化的认识之后,就可以选择合适的解决方法了。

完成这门课之时,你将掌握线性表、栈与队列、字符串、二叉树、树、图等经典的数据结构,并运用这些基础数据结构和相关算法解决实际应用问题。扎实的数据结构知识是项目开发与结构层次设计的关键,学好这门课会让你在高年级的计算机专业课程以及毕业项目设计中事半功倍,同时也将为你成为一名优秀的程序设计人员打下坚实的基础。

附:本课程的内容来自教材:《数据结构与算法》(张铭、王腾蛟、赵海燕 编著),高等教育出版社,2008年。

Enroll now

What's inside

Syllabus

欢迎来到数据结构基础
欢迎你学习《数据结构基础》!相信大家听说过一个著名的公式“程序 = 数据结构 + 算法”,掌握数据结构和相关算法是设计程序来解决实际问题的基础能力。如何在解决一个问题的过程中把信息抽象出来?数据管理应当以什么样的方法存储?应当使用什么算法去求解问题?所选择的算法是否高效?学习了概论内容之后,你将对数据结构和相关算法有基本的了解,掌握一些算法效率分析的基本方法。另外,本模块还补充了编程作业指南和C++面向对象知识。重点:问题求解、数据结构的基本概念(逻辑、存储、运算),抽象数据类型,算法和算法的复杂度分析。难点:问题建模,抽象数据类型的理解,算法复杂度渐进分析。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
教授具有丰富的项目开发与结构层次设计的专业知识,有利于提升学习效果。
适合学习过 C/C++ 语言,希望将编程知识应用于实际问题解决的学习者。
课程内容涵盖数据结构的基础知识和应用,有助于培养扎实的数据结构基础。
提供大量经典数据结构,如线性表、栈、队列、二叉树、图等,扩展学习者的知识面。
重视算法效率分析,帮助学习者掌握问题求解的有效方法。
附有教材,方便学习者查阅和深入理解课程内容。

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

数据结构基础:北大经典课程

根据学生们的反馈,这门北京大学的《数据结构基础》课程被普遍认为是一门经典且扎实的入门课程。学习者们高度评价老师深入浅出、条理清晰的讲解,认为课程内容全面且概念清晰,能够为后续的计算机学习和编程实践打下坚实的基础。课程涵盖了线性表、树、图等核心数据结构,其知识点经典不过时。虽然有部分评论提到视频年代较久,画面和音质稍显不足,且编程作业的难度跨度可能较大,尤其对初学者在后期模块构成挑战,希望能有更多支持。但整体而言,课程的核心价值和教学质量获得了广泛认可
老师讲解深入浅出,概念解释透彻。
"老师讲得非常清楚,概念解释透彻,配合习题练习巩固效果很好。"
"张铭老师讲得太好了,深入浅出,条理清晰。"
"讲解清晰,结构合理。抽象数据类型的概念理解起来稍有难度,但老师的例子很生动。"
"数据结构的基础知识讲得很到位,概念清晰。"
课程内容经典且涵盖核心数据结构。
"课程内容扎实,由浅入深,非常适合数据结构入门。"
"整体课程不错,覆盖面广。线性表、树、图都讲到了基础和一些应用。"
"课程覆盖了核心的数据结构,为后续学习算法和更高级的计算机课程打下了坚实基础。强烈推荐!"
"作为入门课程,非常推荐。内容详实,进度安排合理。"
"虽然是老视频,但内容经典不过时。最后的图论部分讲得尤其棒。"
部分视频年代较久,画面音质有待提升。
"部分视频画质和音质有点老旧,影响一点体验。"
"美中不足是部分视频是多年前录制的,画面和声音质量有待提高。"
"虽然视频有点年代感,但知识是永恒的。"
作业有助于理解,但难度跳跃,尤其后期。
"编程作业能帮助理解,但希望可以提供更多测试用例。"
"编程作业的难度跳跃有点大,尤其是图论的几个作业,对初学者不太友好。"
"作业太难了,特别是图论的作业,没有足够的提示和范例。"
"希望作业能更贴近实际应用,并提供更多调试支持。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 数据结构基础 with these activities:
Watch tutorials on data structures
Provides visual and interactive explanations that can clarify concepts and show real-world applications.
Browse courses on Data Structures
Show steps
  • Find tutorials on platforms like YouTube, Coursera, or Udemy.
  • Watch the tutorials and take notes.
  • Practice the concepts shown in the tutorials.
Complete linear algebra exercises
Helps solidify and reinforce concepts of linear transformations, vector spaces, matrices, and their application.
Browse courses on Matrices
Show steps
  • Find practice problems and exercises online or in textbooks.
  • Solve the practice problems.
  • Check your answers and identify areas for improvement.
Write a blog post on binary tree traversal
Requires a deep understanding of the topic, helps reinforce concepts, and can benefit others by sharing knowledge.
Browse courses on Binary Trees
Show steps
  • Research different binary tree traversal algorithms.
  • Implement the algorithms in a programming language.
  • Write a blog post explaining the algorithms and their applications.
One other activity
Expand to see all activities and additional details
Show all four activities
Build a data structure visualization tool
Requires a comprehensive understanding of data structures, enhances problem-solving abilities, and demonstrates practical application.
Browse courses on Data Structures
Show steps
  • Design the user interface for the visualization tool.
  • Implement the algorithms for visualizing different data structures.
  • Test and debug the visualization tool.
  • Document the usage of the visualization tool.

Career center

Learners who complete 数据结构基础 will develop knowledge and skills that may be useful to these careers:
Database Administrator
As a Database Administrator, you'll be responsible for managing and maintaining databases. This course will teach you the data structures and algorithms used to organize and manage data in databases, helping you to ensure high performance and reliability.
Machine Learning Engineer
As a Machine Learning Engineer, you'll design and develop machine learning models. This course will help you understand how to organize and manage data, and how to choose the right algorithms for your machine learning tasks.
Computer Scientist
Computer Scientists research and develop new ways to use computers. This course lays a good foundation for the data structures and algorithms you'll need for groundbreaking research, which may include AI, cybersecurity, or other cutting-edge domains.
Data Engineer
As a Data Engineer, you'll play a crucial role in building and maintaining the infrastructure that supports data-driven decision-making. This course will help you master the fundamentals of data structures and algorithms, which will empower you to design efficient and scalable data pipelines and data warehouses.
Software Engineer
As a Software Engineer, you'll design and develop software programs. Some may choose to specialize in backend, frontend, or mobile development, but all can benefit from the data structures covered in this course. It will help you architect efficient, scalable, and maintainable software systems.
Software Architect
As a Software Architect, you'll be responsible for designing and maintaining the overall structure of a software application. This course will help you design robust and efficient software systems by understanding how to organize and manage data. It may be particularly helpful for those specializing in backend development.
Business Analyst
As a Business Analyst, you'll use data to identify and solve business problems. This course will help you understand the fundamentals of data structures and algorithms, which are essential for business analysis.
Artificial Intelligence Engineer
As an AI Engineer, you will be responsible for designing, developing, and deploying AI systems. This course may be useful in developing the data structures and algorithms that underpin machine learning models.
Information Security Analyst
As an Information Security Analyst, you'll be responsible for preventing and mitigating security breaches. This course may be useful as you'll learn about data structures and algorithms can help you to detect and respond to security threats more effectively.
Financial Analyst
As a Financial Analyst, you'll use data to make investment recommendations. This course will help you understand the fundamentals of data structures and algorithms, which are essential for financial analysis.
Quantitative Analyst
As a Quantitative Analyst, you'll use mathematical and statistical models to make trading decisions. This course will help you understand the fundamentals of data structures and algorithms, which are essential for quantitative analysis.
Actuary
As an Actuary, you will use mathematical and statistical methods to assess risk. This course will help you understand the fundamentals of probability and data structures, which are essential for actuarial work.
Operations Research Analyst
As an Operations Research Analyst, you'll use mathematical and analytical techniques to improve the efficiency of systems. This course will help you understand the fundamentals of data structures and algorithms, which are essential for operations research.
Data Scientist
Data Scientists employ their skills in data analysis, modeling, and machine learning to help businesses understand and leverage their data for competitive advantage. You'll need to master data structures to organize and process massive datasets in order to uncover insights and trends. This course may be useful to you for building this foundation.
Data Analyst
Data Analysts translate raw datasets into digestible insights to help businesses make informed decisions and fine-tune operations. As a Data Analyst, you'll make use of your knowledge of data structures to uncover patterns and trends in collected data. You'll likely also work with data mining, statistical analysis, machine learning, and data visualization tools, so this course may be useful to you.

Reading list

We've selected 19 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 数据结构基础.
本书是本课程的教材,详细介绍了数据结构和算法的基础知识,提供了大量的例题和习题,有助于巩固所学知识。
本书是算法领域的经典教材之一,内容涵盖广泛,既有基础知识也有前沿研究。对于想深入理解算法原理的同学来说,本书是非常好的选择。
严蔚敏教授的《数据结构》是经典教材,对数据结构的基础知识和概念有系统的介绍,有助于加深对课程内容的理解。
《算法设计手册》是一本算法设计的参考书,提供了广泛的算法设计技巧和范例,有助于提升算法设计能力。
《计算机程序设计艺术》是一本经典的计算机科学著作,提供了算法设计和分析的深入知识,有助于提升算法设计和分析能力。
本书使用 C++ 语言讲解数据结构和算法,对于学习本课程的同学来说,可以加深对数据结构和算法的理解,并提高编程能力。
本书是计算机科学领域的巨著,深入探讨了算法设计、数据结构和编程技术,为《数据结构基础》课程提供了一种更高级、更全面的视角。
《数据结构与算法分析》是一本数据结构和算法的教材,提供了数据结构和算法的全面介绍,有助于提升数据结构和算法的设计和分析能力。
本书深入浅出地讲解了算法的设计和分析方法,对于想系统学习算法的同学来说,本书是很好的选择。
《C++ Primer》是C++语言的经典教材,对C++语言的语法、特性和标准库有全面的介绍,有助于巩固C++语言的基础。
本书以通俗易懂的语言介绍了算法的基本原理,对于没有计算机基础的同学来说,可以帮助他们快速入门。
本书使用 Java 语言讲解了数据结构和算法,对于使用 Java 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书以 C 语言为基础,全面系统地介绍了数据结构和算法的基本概念和原理,对于希望从 C 语言的角度理解数据结构和算法的读者非常有帮助。
本书使用 C++ 语言讲解了数据结构和算法,对于使用 C++ 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书使用 Java 语言讲解了数据结构和算法,对于使用 Java 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书使用 Java 语言讲解了数据结构和算法,对于使用 Java 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书使用 C 语言讲解了数据结构和算法,对于使用 C 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书使用 Python 语言讲解了数据结构和算法,对于使用 Python 语言开发的同学来说,本书可以帮助他们加深对数据结构和算法的理解。
本书介绍了《数据结构基础》课程的专业基础知识,包括数据结构的基本概念、算法设计与分析的基本方法,非常适合作为课程的预备读物或补充材料。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser