数据结构

主讲教师: 李群 副教授 / 山东航空学院

教学进度:
  • 预报名
  • 进行中
  • 已结束

学时安排:48学时

学分:2分

数据结构是计算机科学与技术专业及其相近专业的学科基础课程,系统讲授数据结构概念、原理和应用,是解决复杂工程问题的重要基础。它所讨论的知识内容和提倡的方法,无论对进一步学习计算机领域的其它课程,还是对从事大型信息工程甚至操作系统的开发,都是非常重要的基础和保障,通过本课程的学习有助于提升学习者的算...
  • 752327

    累计页面浏览量

  • 482

    累计选课人数

  • 864

    累计互动次数

2025-09-01 07:54 李群 山东航空学院 在数据结构课程中提问:

广义表与线性表本质区别

从逻辑结构角度阐述广义表与线性表的本质区别,并说明这种差异对存储实现的影响。

  • 01-11 22:47 赵敏

    元素之间的关系更复杂,存在多层嵌套、分支等情况,是一种多层次的非线性结构,广义表的结构有嵌套,不是简单的线性排列
  • 查看全部(34条)

2025-09-01 07:54 李群 山东航空学院 在数据结构课程中提问:

怎样存储高维矩阵才能节省空间?

在许多科学计算中,会用到高维矩阵,在计算机内存储它们时如何能有效节省空间,你有什么方法?

  • 01-11 22:47 赵敏

    利用矩阵特性节省空间:稀疏矩阵存非零元素及位置;对称矩阵存一半;对角/带状矩阵存非零对角线;用CSR等压缩格式。
  • 查看全部(7条)

2025-08-21 16:21 李群 山东航空学院 在数据结构课程中提问:

在线性表中查找数据可以有多快?

如果有一线性表,我们要在其中查找一个与给定值相同的元素,时间复杂度是多少?你认为最快能有多快呢?

  • 01-11 20:40 赵敏

    在普遍的情况下复杂度为n
    最快的情况下为logn
  • 查看全部(23条)

2025-09-01 07:55 李群 山东航空学院 在数据结构课程中提问:

你用过哈希表吗?

在实际问题解决中,你是否使用过哈希方法?如果你用过java、C++,你了解里面的哈希表实例吗?

  • 01-10 20:33 王可一

    实际应用:解决高频统计、两数之和、数组去重/元素查找等问题时会用哈希表,能把操作时间复杂度降到O(1)。
    编程语言实现:Java里的HashMap/HashSet、C++里的unordered_map/unordered_set,都是基于哈希表做的。
  • 查看全部(4条)

2025-09-01 07:55 李群 山东航空学院 在数据结构课程中提问:

哈希表性能与哪些因素相关?

哈希表是查找效率极高的查找结构,你知道它的查找效率与什么有关吗?可以通过具体的哈希表进行讨论

  • 01-10 20:32 王可一

    1. 哈希函数:优劣决定关键字是否均匀映射,是减少冲突的基础;
    ​2. 冲突处理方法:不同方法(如线性探测、链地址)的处理效率差异大;
    ​3. 装填因子:表中已存元素/表长,值越大冲突概率越高。
  • 查看全部(4条)

2025-09-01 07:55 李群 山东航空学院 在数据结构课程中提问:

哈希表中的同义词是否一定相邻存储?

在构建哈希表时,若采用线性探测方法处理冲突,则所有同义词(具有相同哈希函数值的关键字)记录在表中一定相邻吗?

  • 01-10 20:31 王可一

    线性探测处理哈希冲突时,同义词不一定相邻存储。插入同义词时,若哈希地址被其他关键字/更早的同义词占用,会向后依次找空闲位置,而其他非同义词的冲突也会占位置,导致同义词被隔开,这就是线性探测的“冲突连锁效应”。
  • 查看全部(4条)

2025-08-21 16:21 李群 山东航空学院 在数据结构课程中提问:

在C/C++语言里有没有办法不用指针做出链表呢?

2025-08-21 16:21 李群 山东航空学院 在数据结构课程中提问:

顺序表or链表

顺序表和链表到底孰强孰弱,你是如何看待这个问题的?

  • 01-09 14:14 封硕

    顺序表和链表各有顺序表和链表各有的适用性取决于具体的适用性取决于具体优劣,不存在绝对优劣,不存在绝对的应用场景。
  • 查看全部(13条)

2025-09-01 20:48 李群 山东航空学院 在数据结构课程中提问:

带负权值边图的最短路径问题

如果在一个图中的边有负的权值出现,那最短路径求解时是否各种算法策略都可以?比如:Floyd、Dijkstra算法能否得到正确解,为什么呢?

  • 01-08 20:31 王可一

    Dijkstra算法不行,它基于“已确定最短路径的顶点不会再更新”的假设,遇到负权边会破坏该假设,导致结果错误。
    Floyd算法可以,它通过动态规划枚举所有中间顶点,允许边权为负,只要图中无负权回路就能得到正确解。
  • 查看全部(7条)

2025-09-01 20:48 李群 山东航空学院 在数据结构课程中提问:

判断图的连通性

如何判断一个无向图是否是连通的?你有哪些算法?

  • 01-08 20:30 王可一

    判断无向图连通性,常用DFS或BFS:
    从任意顶点出发,用DFS递归访问邻接顶点,或用BFS队列逐层访问,同时标记已访问节点。遍历结束后,若所有顶点都被标记,则图连通;否则存在不连通的子图。
  • 查看全部(35条)

常见问题

  • 1.我该如何学习这门课程?

    (1)首先您要注册一个学银在线的账号。

    (2)您需要有一定的上网条件,能够流畅的观看教学视频。在观看的过程中,您可以选择在PC端登陆我们的网页, 也可以选择下载我们的app学习通,通过手机客户端来学习。

    (3)您一旦报名选择了课程,我们的课程主讲老师或课程团队会通过通知的形式给您发送课程有关的消息,同时会抄送您的邮箱,请您及时查收。

  • 2.我在学习过程中遇到问题了,怎么办?

    您可以通过以下几种方式获取帮助:

    (1)在课程群聊中发布求助信息,说不定和你一起学习这门课的小伙伴就能够解决你的问题呢;

    (2)在课程讨论区留言,课程团队看到后将会及时回复。

    (3)联系我们的客服,或者随时给我们发邮件,邮箱地址:xueyinkf@chaoxing.com。

  • 3.我是新手,能否给我一些学习建议?

    (1)我们的课程采用MOOC的方式授课,因此您可以自由安排您的学习时间、学习地点。但我们仍旧希望您每周能都有固定的时间持续进行本课程的学习,根据人的记忆曲线显示这种规律的学习方式能够最大限度的提升您的学习质量。

    (2)学习的过程比较容易,为了检验您的学习成果,我们的课程团队会在课程章节结束后布置测验或作业,希望您尽可能的按时独立完成。如果有没有掌握的知识点,您可以继续回看复习课程。

    (3)希望您能够积极参与课程的讨论,与各位学习者一起煮酒论英雄。在讨论的过程中,不光可以对课程所学内容温习内化,还能互相碰撞出思想的火花,相信您一定会有额外的收获。

  • 4.课程会不会很难、很枯燥?

    (1)我们的课程都是老师经过精心设计拍摄制作而成,并且由于是MOOC的方式,所以课程拆分成了不同的知识点,学习起来一点也不费劲。

    (2)我们的课程多采取理论结合实际的授课方式,课程中也有许多案例的呈现,相信会给学习者带来诸多方面的启发。我们也将力求做到深入浅出,支持学习者将研究发现转化为实践,改进自身教学。