首页 > C语言高级教程

C语言高级教程(程序员内功修炼秘籍)

C语言图标C语言高级教程用来修炼程序员的内容,相当于武侠世界中的易筋经。

内功,才能决定一个程序员的潜力和高度,才能让大家跳出中年危机的陷阱。那些在大厂一路高升、年薪百万的程序员,没有一个不会内功的。

C语言高级教程包含了一些进阶模块,具体来说有:编译/链接、内存精讲、数据结构、算法和网络通信(Socket)。

C语言高级教程还包含了一些项目实践,具体来说有:学生信息管理系统(多文件版)、HTTP 服务器(基础版)、HTTP 服务器(高性能版)。

该教程由站长和团队倾力打造,不但内容充实,而且语言通俗。更重要的是,我们只说人话,不说官话,用多年的编程经验来剖析那些晦涩的名词和深奥的道理,让小白也能看得懂、看得爽。

数据结构研究的是数据之间的关系,再进一步说,它研究的是多份数据之间的分布、排列和勾连的关系,以及在此基础之上如何进行高效的增删改查操作。

数据结构是计算机专业的基础课程,也是所有程序员的内功心法;不懂数据结构就是写代码的农民,了解数据结构才能成为行业专家。

第1章 数据结构入门
1.数据结构是什么
2.数据的逻辑结构和存储结构
3.数据结构到底学什么
4.时间复杂度和空间复杂度
5.数据结构与算法的区别和联系
6.数据结构如何自学,效率更高?
7.数学不好,对学数据结构有影响吗?
8.学好数据结构,你已然超越了99%的程序员!
第2章 线性表
1.线性表(线性存储结构)是什么
2.顺序表(顺序存储结构)是什么
3.顺序表的基本操作
4.顺序表与数组根本不是一码事!
5.链表(链式存储结构)是什么
6.单链表的基本操作
7.顺序表和链表有哪些不同?
8.实现单链表的反转(4种算法)
9.判断两个单链表相交(3种算法)
10.存储结构和存取结构,完全不是一码事!
11.静态链表是什么
12.静态链表的基本操作
13.静态链表和动态链表的区别
14.双向链表是什么
15.双向链表的基本操作
16.双向链表实现贪吃蛇游戏(含源码)
17.循环链表实现约瑟夫环
18.双向循环链表是什么
19.判断链表中有环(2种算法)
20.线性表实现俄罗斯轮盘赌游戏
第3章 栈和队列
1.栈是什么
2.顺序栈的基本操作(入栈和出栈)
3.链栈的基本操作(入栈和出栈)
4.栈实现进制转换器(C语言实现)
5.栈解决括号匹配问题(C语言实现)
6.栈结构求表达式的值(C语言实现)
7.队列是什么
8.顺序队列的基本操作(入队和出队)
9.循环队列:更高级的顺序队列
10.链式队列的基本操作(入队和出队)
11.为什么说栈和队列是线性存储结构?
12.队列实现停车场管理系统(含C语言源码)
13.队列实现“推小车”扑克牌游戏(含C语言源码)
第4章 字符串
1.串是什么
2.串的定长顺序存储结构
3.串的堆分配存储结构
4.串的块链存储结构
5.BF算法(模式匹配算法)
6.KMP算法(快速模式匹配算法)
7.继续优化KMP算法,效率有质的提升!
8.钻牛角尖:为什么KMP算法的主串指针不用回退?
9.串存储结构实现字符过滤系统(含C语言源码)
第5章 数组和广义表
1.数组是什么
2.数组的顺序存储结构
3.矩阵(稀疏矩阵)压缩存储
4.三元组顺序表存储稀疏矩阵
5.行逻辑链接的顺序表存储稀疏矩阵
6.十字链表法存储稀疏矩阵
7.矩阵(稀疏矩阵)的转置算法
8.稀疏矩阵的快速转置算法
9.行逻辑链接的顺序表实现矩阵乘法
10.十字链表实现矩阵加法
11.广义表是什么
12.广义表的存储结构(2种)
13.广义表的深度和长度
14.广义表的复制(C语言实现)
第6章 树存储结构
1.树存储结构是什么
2.什么是二叉树
3.二叉树的顺序存储结构
4.二叉树的链式存储结构
5.二叉树的4种遍历算法
6.二叉树的先序遍历算法(递归和非递归)
7.二叉树的中序遍历算法(递归和非递归)
8.二叉树的后序遍历算法(递归和非递归)
9.二叉树的层次遍历
10.线索二叉树:遍历效率更高的二叉树
11.双向线索二叉树:更高级的线索二叉树
12.树的双亲表示法
13.树的孩子表示法
14.树的孩子兄弟表示法
15.利用孩子兄弟表示法将森林转变成二叉树
16.哈夫曼树(最优二叉树)是什么
17.哈夫曼编码(C语言实现)
18.回溯算法详解
19.回溯算法解决八皇后问题(C语言实现)
20.回溯算法实现移动迷宫小游戏(初级版)
21.思考:n个结点最多可以构建多少棵树?
第7章 图存储结构
1.图(图存储结构)是什么
2.什么是连通图(强连通图)
3.什么是生成树(生成森林)
4.图的顺序存储结构
5.图的邻接表存储结构
6.图的十字链表存储结构
7.图的邻接多重表存储结构
8.深度优先搜索(DFS)算法
9.广度优先搜索(BFS)算法
10.深度优先生成树和森林(C语言实现)
11.广度优先生成树和森林(C语言实现)
12.最小生成树是什么
13.Prim算法(普里姆算法)求最小生成树
14.Kruskal算法(克鲁斯卡尔算法)求最小生成树
15.重连通图是什么
16.拓扑排序算法(C语言实现)
17.关键路径是什么(C语言实现)
18.最短路径是什么
19.Dijkstra算法(迪杰斯特拉算法)查找最短路径
20.Floyd算法(弗洛伊德算法)查找最短路径
21.最短路径算法实现移动迷宫游戏(升级版)
第8章 查找算法
1.查找表是什么
2.顺序查找算法
3.二分查找(折半查找)算法详解
4.分块查找算法
5.静态树表查找算法
6.二叉排序树(二叉查找树)是什么
7.平衡二叉树(AVL树)是什么
8.红黑树(更高级的二叉查找树)
9.B-树是什么
10.B+树是什么
11.键树查找法(双链树和字典树)
12.哈希表(散列表)是什么
13.哈希查找算法
第9章 排序算法
1.插入排序算法
2.折半插入排序算法
3.2路插入排序算法详解
4.表插入排序算法
5.希尔排序算法(缩小增量排序)
6.冒泡排序(起泡排序)算法
7.快速排序算法(QSort,快排)
8.简单选择排序算法
9.树形选择排序(锦标赛排序)算法
10.堆排序算法
11.归并排序算法
12.基数排序算法详解
13.对内部排序算法的总结
第10章 外部排序算法
1.什么是外部排序
2.多路平衡归并排序算法(胜者树、败者树)
3.置换选择排序算法
4.最佳归并树是什么
第11章 动态内存管理
1.什么是动态内存管理
2.边界标识法管理动态内存
3.伙伴系统管理动态内存
4.无用单元收集(垃圾回收机制)
5.内存紧缩(内存碎片化处理)

socket 是「套接字」的意思,学习 socket 编程,也就是学习计算机之间如何通信,并用编程语言来实现它。

socket 通信技术就是两台联网的计算机之间交换数据的技术,这就是 socket 的全部内容了吗?是的,socket 远比想象中简单很多!