怎么学习数据结构(严蔚敏的c语言版)

时间:2024-11-24

数据存储的目的是便于数据访问。这个关系就是数据结构 算法是计算机解题的模型:输入,输出,顺序执行,跳转,循环,分支,有限步骤。人大脑组织数据的方式 有线,树,图三种逻辑结构,而计算机存储采用顺序,链式和两者混合的方式。前者是概念性的东西,后者是物理实现。

谈谈如何学习数据结构:如果你没有学过C语言,或者C语言学的不好的时候把数据结构当成一本数学书来学,它所讲述的都是一些简单的图论。在你的大脑中的主线不能丢失:线性结构,树结构和图结构。当你不再考虑复杂的程序设计时,仅仅研究个个离散点之间的关系,似乎数据结构也就不会那么难了。

1,要学习好算法,首先要过数据结构这一节。2,把常用的顺序表、链表、二叉树、堆、栈、图等结构要掌握,知道他特点。3,常用的排序算法掌握,如最基本的选择、插入、冒泡、快速、归并、基数、希尔、堆排序等,并知道他们的时间和空间复杂度。

首先,确保对基础概念有深入理解,如数据元素、数据关系和操作,这是构建数据结构大厦的基础。选择权威教材《数据结构》(C语言版)进行系统学习,阅读时做笔记,加深记忆。同时,通过编程实践,如实现数据结构实例,将理论与实践相结合,能更好地掌握。

c语言的基础就行了,当然有c语言基础再在电脑上边敲代码边学数据结构最好不过。不过那本书里的代码多数是伪代码,只给了一个逻辑,并不能运行,你可以自己想或者在网上搜c语言版的代码然后运行。

一语道破:low[u]其实是u结点及其以下的所有结点的反向边所指的最“浅”的结点的深度,一下子就知道怎么编码了。再如kmp算法83页pk!=pj的时候如何求出next[j+1]=next[k]+1的,死活想不明白,网上搜到严蔚敏的kmp讲解才弄明白。

严蔚敏数据结构教材中讲的是广义的串,链表的话,也是先讲顺序表,而不是链表,这是一个子集的关系。排序的话,其实冒泡排序,快排这些都是内部排序,外部排序C语言应该是不会学的。再高效的学习方法,最终目的都是深入理解并灵活运用所学的东西,这种东西是走不了捷径的,只能理解并非常熟悉才行。

严蔚敏数据结构的也有配套的c语言版带光盘的书是有卖的。我开始学的时候也就是先指针,再结构体分解了去一块块的学习,有点懂了才开始写代码的。

难度我觉得数据结构更难点,但要用心学,耐心学可以说都不难。 数据结构主要就是塑造你的编程思想,让你把抽象问题形象化,然后用代码表示出来,所以数据结构是很有用的,也可是说是你编程 的重要工具。推荐教材 《数据结构 C语言版》严蔚敏编写 高中生不是问题,关键是你是否用心学它。

肯定很难啊,我们学了这本书,比较难,还要学习一个学期,比较需要c语言和计算机网络的基础。