> For the complete documentation index, see [llms.txt](https://advancedguideforsds.gitbook.io/advancedguide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://advancedguideforsds.gitbook.io/advancedguide/pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/shu-ju-jie-gou-zhuan-ye-ji-chu.md).

# 数据结构A（专业基础）

学分：4.0

By——蓝色条纹面包

## 课程简介

本门课主要是介绍常用的各种数据结构，如线性表，栈和队列，串，数组和广义表，树，图，查找。主要是锻炼数据抽象能力和程序设计能力，并且要求学生能够对算法的时间和空间复杂度有一定的分析能力，**是计算机极其重要的基础课程。**

## 前置知识涉及的课程

计算机程序设计

## 往年经验

总体而言，数据结构是一门**较为简单的专业课**，且不涉及复杂的算法。但对于基础与代码能力较为薄弱的同学，上手这门课程的内容以及**实验**可能存在一定难度。这时请**善于运用A**I解决知识点以及C++语言语法等方面的疑问（~~而非直接完成你的作业/代码~~），并且在运用AI时请仔细理解并Review你的代码，这是对你自己能力的负责（~~也是来自笔者助教的吐槽~~）。同时**不建议** 直接向助教提问显然可以使用大模型解决的（或未经思考的）疑问/吐槽为什么不用OJ/公开吐槽课程太太太简单了 ，以营造一个良好的课堂氛围。

本课程在春季会开课供先修/重修/辅修的同学学习，学有余力或大一下课程少的同学可以提前修读，也可以预先针对当前数据结构了解更多的算法。由于本门课较注重理论与实践的结合，所以可以尝试对很多算法进行复现，深入了解各种数据结构的灵活应用，甚至可以尝试leetcode/洛谷（类似程设作业提交平台，有丰富的题库）

基本上老师都会补充部分深入算法（例如A\*，红黑树，B+/B-树等），这些内容并不会出现在实验/作业/考试中，仅作了解即可。

期末闭卷考试，如果平时认真写代码，对各种结构的代码有较深刻的印象，可以从容应对期末的算法题，卷子中的选择和填空以基础理解为主，相对而言比较轻松。

## 与后续课程的关系

为《算法基础》这门课打了一定的基础，算法基础中的各种算法就是基于各种基础的数据结构运行的，如果能有一个良好的数据结构功底，那么算法基础中的算法理解和代码实现会更加轻松。

## 目录

<details>

<summary>数据结构教学提纲</summary>

线性表

栈和队列

串

数组和广义表

树

图

查找

排序（部分老师会讲）

</details>

## 相关资料

数据结构系列课程（数据结构A/B，数据结构及其算法）的课程、考试内容基本一致，且这门课之前的历史复杂，所以往年卷较为难找，可参考部分资料进行复习。

链接：<https://pan.ustc.edu.cn/share/index/455f92b0a8a54313bb0b>
