大一新生先学C语言编程还是先学C语言的数据结构和算法?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 大一新生先学C语言编程还是先学C语言的数据结构和算法?

大家好,我是辣条。

这是一位粉丝朋友给我的私信,今天就他这个问题好好聊聊。

先学C语言在学数据结构和算法
先说答案建议先学C语言,掌握基本的语法基础后,再学数据结构与算法,C语言编程与数据结构和算法这两个完全是两个东西了。

学习数据结构和算法有一个很重要的前提,就是至少熟练掌握一门编程语言,编程语言掌握肯定越多越好,但是至少要掌握以下几点,因为数据结构实现,链表、图、等都会用到指针、结构体、指针函数等,堆栈、队列等需要掌握内存知识。

C语言和数据结构与算法的关系

C语言编程只是一种编程语言,同样的还有java、golang、python、php....等都是编程语言,它只是你实现功能的一种工具。

数据结构与算法不单单是C语言会有的,很多开发语言都会用到数据结构与算法,数据结构与算法不会和任何一种语言绑定死,它更像是一种抽象的方法、设计、思路。用来帮助你更好、更快、更轻松的使用“工具”。

两者重要性

编程语言

先说说C语言,首先编程语言至少要会一门,因为毕竟他是工具,是你用来实现功能的基础,所以基础知识就非常重要了,一定要好好理解、掌握基础知识,后面所学的扩展知识基本上都是在基础之上的一层封装实现。

就好比学完java基础后,我们还会学习spring框架,但是你只要查看spring框架的源码,你会发现它底层就是用java基础来封装的,如果你基础都不扎实,那还怎么看得懂框架源码呢?

数据结构与算法

数据结构与算法我认为是开发人员的核心竞争力了,这个更是重中之重了,优秀的研发人员实现功能往往不是简单的功能能运行就行了,而是怎么做到能更快、成本更低、更稳定的实现一个功能,这时数据结构与算法就体现了它的强大之处!通过学习并理解数据结构与算法,你会发现一个功能的实现可以采用多种实现方案,通过分析时间成本、空间成本选择一个贴切业务的方案。

学习路线图

学习书籍
C语言
《C程序设计语言》

《 C Primer Plus》

《C与指针》

《征服C指针》

《C专家编程》

《C陷阱与缺陷》

C++
《 C++ Primer 中文版 第五版 》

Effective 三部曲:《Effective C++》、《More Effective C++》、《Effective STL》

《STL源码剖析》

《 深入探索C++对象模型 》

《提高 C++ 性能的编程技术》

《C++语言设计与演化》

《C++沉思录》

《C++标准程序库》

《C++模板元编程》

数据结构与算法
《大话数据结构》

《啊哈!算法》

《漫画算法:小灰的算法之旅》

《剑指Offer》

《程序员代码面试指南》

《编程珠玑》

《编程之美》

《挑战程序设计竞赛》

《算法(第四版)》

《算法导论》

数据库
《 MySQL必知必会》

《MySQL是怎样运行的》

《 高性能MySQL》

《 MySQL技术内幕: InnoDB存储引擎 》

《 Redis设计与实现 》

《Redis实战》

《 数据库系统实现》

学习视频
《郝斌C语言自学教程》

比较老的视频,但是讲的很详细,适合小白。

【C语言】《带你学C带你飞》

小甲鱼的C语言教学,B站编程语言最能打的教学视频之一。

郝斌数据结构

虽然比较老,但是讲的比较详细,容易理解,对初学者非常友好。

数据结构-浙江大学

课程是由陈越与何钦铭共同录制,b站与慕课网都有,慕课网比较清晰一些

数据结构与算法基础

课程由青岛大学王卓老师录制,非常适合考研,讲的题比较多。

👇🏻 疑难解答、学习资料、路线导图可通过搜索下方

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
68 1
|
2月前
|
存储 算法 搜索推荐
【趣学C语言和数据结构100例】91-95
本文涵盖多个经典算法问题的C语言实现,包括堆排序、归并排序、从长整型变量中提取偶数位数、工人信息排序及无向图是否为树的判断。通过这些问题,读者可以深入了解排序算法、数据处理方法和图论基础知识,提升编程能力和算法理解。
69 4
|
2月前
|
存储 机器学习/深度学习 搜索推荐
【趣学C语言和数据结构100例】86-90
本文介绍并用C语言实现了五种经典排序算法:直接插入排序、折半插入排序、冒泡排序、快速排序和简单选择排序。每种算法都有其特点和适用场景,如直接插入排序适合小规模或基本有序的数据,快速排序则适用于大规模数据集,具有较高的效率。通过学习这些算法,读者可以加深对数据结构和算法设计的理解,提升解决实际问题的能力。
56 4
|
2月前
|
存储 算法 数据处理
【趣学C语言和数据结构100例】81-85
本文介绍了五个经典算法问题及其C语言实现,涵盖图论与树结构的基础知识。包括使用BFS求解单源最短路径、统计有向图中入度或出度为0的点数、统计无向无权图各顶点的度、折半查找及二叉排序树的查找。这些算法不仅理论意义重大,且在实际应用中极为广泛,有助于提升编程能力和数据结构理解。
57 4
|
2月前
|
算法 数据可视化 数据建模
【趣学C语言和数据结构100例】76-80
本文介绍了五种图论算法的C语言实现,涵盖二叉树的层次遍历及广度优先搜索(BFS)和深度优先搜索(DFS)的邻接表与邻接矩阵实现。层次遍历使用队列按层访问二叉树节点;BFS利用队列从源节点逐层遍历图节点,适用于最短路径等问题;DFS通过递归或栈深入图的分支,适合拓扑排序等场景。这些算法是数据结构和算法学习的基础,对提升编程能力和解决实际问题至关重要。
62 4
|
2月前
|
存储 算法 vr&ar
【趣学C语言和数据结构100例】71-75
本文介绍了五个C语言数据结构问题及其实现,涵盖链表与二叉树操作,包括按奇偶分解链表、交换二叉树左右子树、查找节点的双亲节点、计算二叉树深度及求最大关键值。通过递归和遍历等方法,解决了理论与实际应用中的常见问题,有助于提升编程能力和数据结构理解。
51 4
|
2月前
|
存储 算法 C语言
【趣学C语言和数据结构100例】66-70
本书《趣学C语言和数据结构100例》精选了5个典型的数据结构问题及C语言实现,涵盖链表与数组操作,如有序集合的集合运算、有序序列表的合并、数组中两顺序表位置互换、三递增序列公共元素查找及奇偶数重排。通过详细解析与代码示例,帮助读者深入理解数据结构与算法设计的核心思想,提升编程技能。
40 4
|
2月前
|
存储 算法 C语言
【趣学C语言和数据结构100例】51-55
本文介绍了五个关于链表操作的C语言实现案例,包括删除单链表中的重复元素、从两个有序链表中查找公共元素、判断一个链表是否为另一链表的连续子序列、判断循环双链表是否对称及合并两个循环单链表。每个案例都详细解析了算法思路与实现方法,涵盖了链表操作的多种场景,旨在帮助读者深入理解链表数据结构的应用,提升算法设计与编程能力。
51 4
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
162 59
|
1月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
64 8

热门文章

最新文章