We may earn an affiliate commission when you visit our partners.
Course image
Junhui DENG

By learning this course, you will get a comprehensive grasp of stack, queue, binary tree, graph and BST structures and algorithms, as well as their applications. By the end of this course, you will be able to understand and implement stack, queue and binary tree, use binary trees to solve problems such Huffman encoding, understand and implement the graph structure as well as related algorithms such BFS, DFS and PFS, understand and implement AVL tree.

通过学习本课程,你将全面了解栈、队列、二叉树、图和二叉搜索树结构、算法及其应用。 在本课程结束时,你将能够理解和实现栈、队列和二叉树,使用二叉树解决霍夫曼编码等问题,理解并实现图结构以及相关算法(例如BFS,DFS和PFS),理解并实现AVL树。

Enroll now

What's inside

Syllabus

第零章
第四章 栈与队列
本章内容为:栈与队列
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Expands on computer science fundamentals, which is highly relevant to software engineering
Explores topics that are core skills for computer science students and coders
Taught by Junhui DENG, who are recognized for their work in data structure and algorithm

Save this course

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

Reviews summary

数据结构与算法进阶:内容扎实作业有益

根据学生评价,本课程提供了扎实且深入的数据结构与算法知识,特别是对于图和AVL树等重要概念的讲解得到了广泛认可。许多学习者认为讲师的讲解清晰且有条理编程作业设计得很有挑战性且能有效提升实践能力。然而,也有部分同学反映课程节奏较快部分复杂概念需要反复学习消化。一些评论指出,课程可能更适合已有一定基础的学习者对初学者可能难度偏高,且编程作业的指导和测试用例可以更完善。此外,课后互动和答疑支持有待加强。
作业设计具挑战性,能有效提升实践能力。
"编程作业也很有挑战性,但能真正提升能力。强烈推荐给想打好算法基础的同学。"
"习题难度适中,有助于巩固知识。"
"课后习题设计得很棒,能让我动手实践,加深理解。感谢老师!"
"习题和作业设计得很有思考性。"
"编程作业有时候会卡住,需要花很多时间调试。"
课程覆盖广泛,对核心概念讲解深入。
"这门课深入浅出,老师讲得非常清楚,特别是图的部分,帮我理清了很多思路。"
"课程内容扎实,覆盖了栈、队列、树、图等核心数据结构。"
"非常精彩的课程,尤其是图算法部分,讲解得非常系统和清晰。"
"这门课是学习数据结构和算法的绝佳选择!内容组织合理,讲解深入。"
"课程质量很高,老师讲解非常到位,逻辑清晰。"
课后缺少必要的答疑和交流互动。
"感觉交互性不强,没有答疑环节或者论坛交流不太活跃。"
"遇到问题只能自己摸索。希望平台或老师能提供更多互动支持。"
编程作业指导不够详细,测试用例偏少。
"编程作业的指导不是很详细,对于初学者来说可能有点困难。"
"作业也挺难的,没有详细的解题思路或提示,感觉有点吃力。"
"编程作业的测试用例不够完善,有时候感觉自己的代码逻辑没问题但就是过不了。"
"感觉作业细节指导可以再多一些,对新手更友好。"
部分讲解偏快,不适合零基础学习者。
"部分讲解稍快,需要反复观看。"
"内容很好,但是老师的语速有点快,有些概念没有讲透,需要自己查阅资料补充。"
"课程难度比想象的要高,一些复杂的概念讲解不够清晰,听课的时候云里雾里。"
"不适合零基础。"
"感觉课程更适合有一定基础的学习者。"

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 Data Structures and Algorithms (II) with these activities:
Organize a study group with other students
Enhance your understanding of the material by discussing concepts with peers, asking questions, and working on problems together.
Browse courses on Collaboration
Show steps
  • Reach out to other students in your class or online community.
  • Set up regular study sessions to meet in person or virtually.
Read 'Introduction to Computer Algorithms'
Get started familiarizing yourself with basic algorithms with this comprehensive guide that's used at top-tier universities around the country.
Show steps
  • Start by reading Chapter 1 and complete the practice problems.
  • Progress through the remaining chapters, working through the practice problems at the end of each.
  • Once finished, take practice problems from previous years' exams to test your knowledge.
Follow a tutorial series on Udemy or Coursera
Deepen your understanding of specific topics by following a structured tutorial led by an expert in the field.
Browse courses on Algorithms
Show steps
  • Identify a topic you want to learn more about.
  • Search for a tutorial series on Udemy or Coursera that covers that topic.
  • Enroll in the tutorial series and follow along with the lessons.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a tech meetup or conference
Connect with like-minded individuals in the field, learn from their experiences, and gain valuable insights.
Browse courses on Networking
Show steps
  • Research upcoming meetups or conferences related to algorithms and data structures.
  • Pick an event that aligns with your interests and register to attend.
  • Engage in conversations, ask questions, and share your knowledge with others.
Complete practice problems on LeetCode
Enhance your problem-solving skills and reinforce your understanding of the concepts by practicing on leetcode.
Browse courses on Algorithms
Show steps
  • Browse through the problems and pick one that interests you.
  • Work through the problem on your own, using hints when needed.
  • Once you have a solution, compare it to the provided solution to identify areas for improvement.
Attend a coding workshop
Gain practical experience and improve your coding skills by working on real-world projects under the guidance of experienced instructors.
Browse courses on Algorithms
Show steps
  • Find a coding workshop that aligns with your interests and skill level.
  • Register for the workshop and attend all the sessions.
  • Complete the projects assigned during the workshop.
Volunteer at a hackathon or coding competition
Apply your skills in a practical setting, collaborate with others, and contribute to the community.
Browse courses on Problem Solving
Show steps
  • Find a hackathon or coding competition that aligns with your interests.
  • Register as a volunteer and assist with tasks such as judging, mentoring, or organizing.
Write a blog post about a data structure or algorithm
Solidify your understanding of a topic by putting it into writing and presenting it to others.
Browse courses on Data Structures
Show steps
  • Pick a specific data structure or algorithm that you want to explain.
  • Research the topic thoroughly, ensuring you have a deep understanding.
  • Write a blog post that explains the concept clearly and concisely.
  • Publish your blog post and share it with others.

Career center

Learners who complete Data Structures and Algorithms (II) will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This role requires proficiency in building data structures to architect scalable software. It requires proficiency in designing algorithms for both time and space complexity. Taking Data Structures and Algorithms (II) builds a foundation in both of these areas.
Data Analyst
A Data Analyst uses data to find trends and patterns to solve business problems. This role requires proficiency in building data structures to manage large amounts of data. It requires proficiency in designing algorithms for both time and space complexity. Taking Data Structures and Algorithms (II) builds a foundation in both of these areas.
Data Scientist
A Data Scientist uses data to create predictive models. This role requires proficiency in building data structures to manage large amounts of data. It requires proficiency in designing algorithms for both time and space complexity. Taking Data Structures and Algorithms (II) builds a foundation in both of these areas.
Computer Scientist
A Computer Scientist researches and develops new computer technologies. This role requires proficiency in building data structures and designing algorithms. Taking Data Structures and Algorithms (II) builds a foundation in these areas.
Web Developer
A Web Developer designs and develops websites. This role requires proficiency in building data structures to manage user data and optimizing site performance for time and space complexity. Taking Data Structures and Algorithms (II) can help build a foundation in these areas.
Database Administrator
A Database Administrator manages and maintains databases. This role requires proficiency in managing data structures and designing algorithms for database performance. Taking Data Structures and Algorithms (II) builds a foundation in these areas.
Systems Analyst
A Systems Analyst designs and implements computer systems. This role requires proficiency in building data structures and designing algorithms. Taking Data Structures and Algorithms (II) builds a foundation in these areas.
Information Security Analyst
An Information Security Analyst protects computer systems from unauthorized access. This role requires proficiency in building data structures and designing algorithms for security applications. Taking Data Structures and Algorithms (II) builds a foundation in these areas.
Software Tester
A Software Tester tests software applications for defects. This role requires proficiency in designing algorithms for automating tests. Taking Data Structures and Algorithms (II) can help build a foundation in this area.
Technical Writer
A Technical Writer creates documentation for software applications. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) develops this understanding.
Product Manager
A Product Manager manages the development of software products. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) develops this understanding.
IT Consultant
An IT Consultant provides advice on computer systems. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) develops this understanding.
Computer Hardware Engineer
A Computer Hardware Engineer designs and develops computer hardware. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) can help develop this understanding.
Computer Network Architect
A Computer Network Architect designs and implements computer networks. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) can help develop this understanding.
Information Technology Manager
An Information Technology Manager manages the IT department of an organization. This role requires proficiency in understanding data structures and algorithms. Taking Data Structures and Algorithms (II) can help develop this understanding.

Reading list

We've selected ten 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 Data Structures and Algorithms (II).
本书是一本经典的数据结构和算法教材,使用 Java 语言讲解,有助于理解课程中所学数据结构和算法的实现细节。
本书是算法领域的另一本经典教材,对算法的分析和设计进行了深入的讲解,有助于拓展课程中所学算法的知识面。
本书是一本算法通俗读物,用生动有趣的方式讲解算法的基本概念和思想,有助于培养算法思维。
本书是一本算法竞赛方面的进阶指南,讲解了算法竞赛中常用的技巧和方法,对于参加算法竞赛的同学非常有帮助。
本书是一本 Java 编程指南,讲解了 Java 语言中的一些最佳实践和设计模式,有助于提高 Java 编程水平。
本书是一本 C++ 语言教程,讲解了 C++ 语言的基础知识和高级特性,对于使用 C++ 语言编程的同学非常有帮助。
本书是一本 Python 编程指南,提供了大量的 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