数据结构(严蔚敏版)与算法的实现(含全部代码)

目录

基础

c/c++ 代码优化及常见错误

    c语言位运算的妙用-程序优化

c/c++进制转换方法汇总(含全部代码)

     二进制数-北邮2012研究生复试

C++ string的简单使用

C++ 类型转换(内置类型,string、char*、const char*等)

质因子分解

除树和图外的数据结构可以使用STL: C++ STL的使用

数据结构

线性表

顺序表

        循环左移(2010联考真题)

单链表

        单链表相邻结点逆置(2019北邮考研真题)

顺序栈

链栈

队列

循环队列

链队

二叉树

二叉查找(排序)树的插入,创建,查找,删除

二叉查找树-插入结点,返回父节点(2012北邮机试)

二叉树-已知前序遍历和中序遍历,求后序遍历

哈夫曼树-创建,编码,解码,带权路径长度(含全部代码)

树-双亲表示法(含全部代码)

       统计结点个数(双亲表示法)-北邮2013研究生复试

无向图-基本操作函数(建立,宽度遍历,深度遍历,邻接矩阵表示)

图-迪杰斯特拉(Dijkstra)算法详解(含全部代码)

图-贝尔曼福特(Bellman-Ford)算法详解(含全部代码)(北邮考研不考)

图-弗洛伊德(FloydWarshall)算法详解(含全部代码)

图-最小生成树(Prim)算法详解(含全部代码)

图-最小生成树(Kruskal)算法详解(含全部代码)

图-完美匹配-匈牙利算法(Hungarian method Edmonds)详解(含全部代码)

图-欧拉图(欧拉环游/回路、欧拉迹/通路、Hierholzer算法、Fleury算法)

查找

二分查找

折半查找某数X在数组中出现的次数(2019北邮考研真题)

KMP算法next与nextval手算

排序

简单选择排序

直接插入排序

冒泡排序

快速排序

排序算法比较

常见算法思想

双指针

双指针算法详解(快慢指针、对撞指针、滑动窗口)

递归

递归-简单背包问题(修剪递归树,含全部代码)

递归-深度优先搜索(模板、回溯、剪枝、记忆化)

递推

并查集(Disjoint Set)详解+例题

分治

分治-最大子数组(算法导论P39)

动态规划

动态规划-最大子数组

动态规划-最长平衡子串(2018北邮机试真题)

动态规划-简单背包问题

动态规划-0/1背包问题

动态规划-0/1背包优化

动态规划-完全背包

动态规划-完全背包优化

动态规划-多重背包

数论

素数筛选-埃氏筛法与欧拉筛法

北邮机试真题

2019北邮计算机院机试真题

特殊数-2017北邮机试真题

最值问题-北邮OJ88

字符串转换-北邮OJ90

反转单词-北邮OJ103

912星球的研究生-北邮OJ104

中位数-北邮2014研究生复试

内存分配-北邮OJ277

丁神去谷歌-北邮OJ416

丁神又去谷歌(0/1背包)-北邮OJ417

算法可视化


重大消息:本专栏出对应的实战专栏啦(OJ网站题目分类,分难度整理笔记(leetcode、牛客网)),欢迎查看、评论、分享更优秀思路。(2020-08-28更新)

  • 基础

c/c++ 代码优化及常见错误

    c语言位运算的妙用-程序优化

c/c++进制转换方法汇总(含全部代码)

     二进制数-北邮2012研究生复试

C++ string的简单使用

C++ 类型转换(内置类型,string、char*、const char*等)

质因子分解

除树和图外的数据结构可以使用STL: C++ STL的使用

  • 数据结构

  • 线性表

顺序表

        循环左移(2010联考真题)

单链表

        单链表相邻结点逆置(2019北邮考研真题)

顺序栈

链栈

  • 队列

循环队列

链队

二叉树

二叉查找(排序)树的插入,创建,查找,删除

二叉查找树-插入结点,返回父节点(2012北邮机试)

二叉树-已知前序遍历和中序遍历,求后序遍历

哈夫曼树-创建,编码,解码,带权路径长度(含全部代码)

树-双亲表示法(含全部代码)

       统计结点个数(双亲表示法)-北邮2013研究生复试

无向图-基本操作函数(建立,宽度遍历,深度遍历,邻接矩阵表示)

图-迪杰斯特拉(Dijkstra)算法详解(含全部代码)

图-贝尔曼福特(Bellman-Ford)算法详解(含全部代码)(北邮考研不考)

图-弗洛伊德(FloydWarshall)算法详解(含全部代码)

图-最小生成树(Prim)算法详解(含全部代码)

图-最小生成树(Kruskal)算法详解(含全部代码)

图-完美匹配-匈牙利算法(Hungarian method Edmonds)详解(含全部代码)

图-欧拉图(欧拉环游/回路、欧拉迹/通路、Hierholzer算法、Fleury算法)

  • 查找

二分查找

折半查找某数X在数组中出现的次数(2019北邮考研真题)

KMP算法next与nextval手算

  • 排序

简单选择排序

直接插入排序

冒泡排序

快速排序

排序算法比较

  • 常见算法思想

  • 双指针

双指针算法详解(快慢指针、对撞指针、滑动窗口)

  • 递归

递归-简单背包问题(修剪递归树,含全部代码)

递归-深度优先搜索(模板、回溯、剪枝、记忆化)

分治-最大子数组(算法导论P39)

动态规划-最大子数组

动态规划-最长平衡子串(2018北邮机试真题)

动态规划-简单背包问题

动态规划-0/1背包问题

动态规划-0/1背包优化

动态规划-完全背包

动态规划-完全背包优化

动态规划-多重背包

  • 数论

素数筛选-埃氏筛法与欧拉筛法

  • 北邮机试真题

2019北邮计算机院机试真题

特殊数-2017北邮机试真题

最值问题-北邮OJ88

字符串转换-北邮OJ90

反转单词-北邮OJ103

912星球的研究生-北邮OJ104

中位数-北邮2014研究生复试

内存分配-北邮OJ277

丁神去谷歌-北邮OJ416

丁神又去谷歌(0/1背包)-北邮OJ417

算法可视化

algorithm visualizer

github上的一个开源项目,可视化学算法,使用的是js,包含的算法比较全面

关注博主公众号,回复 数据结构资源 获取数据结构(C语言版)、数据结构(第二版)课件、所有算法代码。 

本人b站账号:lady_killer9

有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。您的支持是我不断更新的动力。

  • 807
    点赞
  • 5531
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 65
    评论
清华大学出社出的《数据结构(C语言)》是清华大学计算机科学与技术系教材严蔚敏编写的经典教材。全书包数据结构的基本概念和常用算法的详细介绍,并提供了相应的代码实现。 《数据结构(C语言)》的代码实现主要示例采用了C语言。全书共有12章内容,包括线性表、栈和队列、串、树与二叉树、图、查找、排序等。每一章节都配备了大量的算法示例和相应的C语言代码实现。下面以线性表为例简要介绍一下书中代码实现: 在第2章“线性表”的内容中,书中详细介绍了线性表的定义、基本操作以及线性表的顺序存储结构和链式存储结构的实现方法。 在顺序存储结构部分,书中给出了线性表的初始化、插入、删除、查找等基本操作的代码实现。例如,线性表的初始化操作可以通过以下C语言代码实现: ```c #define MAXSIZE 100 // 定义线性表的最大长度 typedef struct { int data[MAXSIZE]; // 存储数据元素的数组 int length; // 线性表的当前长度 } SqList; void InitList(SqList *L) { L->length = 0; // 初始化线性表长度为0 } ``` 在链式存储结构部分,书中介绍了线性表的链式存储结构以及常见的链表类型,如单链表、静态链表和循环链表。对于单链表,书中给出了插入、删除、查找等操作的代码实现。例如,线性表的插入操作可以通过以下C语言代码实现: ```c typedef struct Node { int data; // 数据域 struct Node *next; // 指针域 } Node; // 在第i个位置插入元素 int InsertList(Node *head, int i, int x) { Node *pre = head; // pre指向头结点 int j = 0; while (pre != NULL && j < i - 1) { // 遍历找到第i-1个结点 pre = pre->next; j++; } if (pre == NULL || j > i - 1) { return 0; // 位置错误返回0 } Node *new_node = (Node *)malloc(sizeof(Node)); new_node->data = x; new_node->next = pre->next; pre->next = new_node; return 1; } ``` 以上只是《数据结构(C语言)》中部分代码实现的简单例子,全书还包很多其他章节的代码实现。读者可以通过阅读这本教材更全面地了解数据结构的概念和常用算法,并借助书中提供的代码实现进行实际操作和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lady_killer9

感谢您的打赏,我会加倍努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值