考研 C与数据结构代码总结目录页

文章目录

  • 一、C
    • C的应用
    • 位运算
  • 二、数据结构
    • 链表
    • 队列
    • 排序

前言:2019考研,我考的专业课是数据结构(含C语言程序设计),在考研备考期间,初学数据结构,感觉也是很曲折。刚开始复习看着每道题只有关键代码很头疼,为了保证自己的代码有同样的效果,不得不花很多时间去完善非重点部分的代码来完整运行起来,暑假写了挺多这种细枝末节的代码,也记录了一些放在我的Github上,不过没有整理目录,看着很乱,今天无意中看到了,所以特地抽出时间整理了一下目录,希望对同样备考的您有帮助,省下您一些写程序框架的时间或者是给您一点启发。备考匆忙,加上我是跨考,写下的难免会有错误,希望大家发现了能给我指出,甚是感谢!如果您有时间,也可以对我的进行整理补充或者是开一个更专业的板块,为后面的学弟学妹们留点东西。

一、C

C的应用

  1. 不用栈实现单括号匹配
  2. 使用二级指针做矩阵加法
  3. 计算比赛前多少名的平均分
  4. 通过递归判断给定序列是否是回文序列
  5. 使用倒推法求解原始物体数目(猴子分桃问题)
  6. 求解一元一次方程
  7. 矩阵转置
  8. 身份证校验
  9. 汉诺塔
  10. 按某些规则计算前n项累加累乘的结果
  11. 归并两个非递减数组保留重复项
  12. 求旋转数组中最小值以及某个确定值位置
  13. 找升序序列的中位数
  14. 求两递增集合的交集
  15. 多种方法求最大子列和并输出最大子列
  16. 八皇后问题
  17. 利用二分法计算任意数开方
  18. 字符串—求全排列
  19. 字符串—空格替换
  20. 字符串—KMP算法
  21. 字符串—找单词共同后缀串

位运算

  1. 位运算–判断一个数是否是2的n次幂
  2. 位运算–判断一个数的奇偶性
  3. 位运算–实现算数运算加减乘除
  4. 位运算–将整型数据按字节存入char型数组中
  5. 位运算–将无符号整型数转换成十六进制存在char型数组中
  6. 位运算–找出数列中出现次数为奇数的数
  7. 位运算–求一个数原码对应的补码
  8. 位运算–输出长度为n的二进制数中不包含101子串的总数目

二、数据结构

链表

PS.感觉放C那里更和谐,为了和后面衔接,放数据结构里吧

  1. 单链表的基本操作
  2. 单链表插入排序
  3. 两种不同的单链表逆序
  4. 双向链表
  5. 双向循环链表的基本操作
  6. 将两个顺序相反的链表归并成一个有序链表
  7. 对链表中绝对值相同的节点去重
  8. 双向循环链表非递减排序
  9. 约瑟夫问题
  10. 魔术师发牌问题
  11. 十字链表存储稀疏矩阵

  1. 静态栈及基本操作
  2. 利用静态栈实现数制转换
  3. 动态栈及基本操作
  4. 共享栈构建及相关操作
  5. 栈的应用—括号匹配

队列

PS.这个做过的题不是很多

  1. 队列–链式循环队列实现及其相关操作

  1. 静态链式二叉树的创建及各种遍历方式
  2. 二叉树层次遍历
  3. 二叉树非递归遍历
  4. 动态创建二叉树并遍历输出
  5. 动态输入二叉树并通过后序遍历求深度
  6. 求二叉树宽度
  7. 求二叉树宽度2
  8. 线索化二叉树
  9. 二叉排序树
  10. 将数组中满二叉树的前序序列转成后序序列
  11. 已知先序序列和中序序列还原二叉树
  12. 根据给定的满二叉树序列构建二叉树
  13. 已知前序中序或者是中序后序还原二叉树完整版(递归+非递归)
  14. 判断标准形式的二叉树是否是堆
  15. 树–寻找两个节点最近的公共祖先
  16. 天勤第六章思考题1—输出二叉树根节点到每个叶子节点的路径
  17. 天勤第六章综合应用题1.10—对二叉树进行所谓的双序遍历
  18. 天勤第六章综合应用题1.11—设计中序线索二叉树并找某些节点的信息
  19. 天勤第六章综合应用题1.2—计算节点数
  20. 天勤第六章综合应用题1.3—计算叶子节点数
  21. 天勤第六章综合应用题1.4—借助树的右指针域将树的叶子节点串成链表
  22. 天勤第六章综合应用题1.5—输出带双亲域的树的所有节点到根节点的路径
  23. 天勤第六章综合应用题1.7—求二叉树中某个数所在的层
  24. 天勤第六章综合应用题1.8—根据权值构造郝夫曼树并计算带权路径长度

  1. 图–使用邻接矩阵创建图并用多种方式遍历
  2. 图–使用邻接表创建图并用多种方式遍历
  3. 图–Prim(普里姆)算法
  4. 图–Kruscal(克鲁斯卡尔)算法
  5. 图–最短路径 Dijkstra(迪杰斯特拉)算法
  6. 图–最短路径 Floyd(弗洛伊德)算法
  7. 图–拓扑排序算法
  8. 通过深度优先遍历判断有向图是否有环
  9. 图—求不带权无向连通图距顶点最远的顶点
  10. 图—判断两个顶点之间是否有路径
  11. 图–判断无向图G是否是一棵树
  12. 图–输出图中连续为1的最大块数
  13. 天勤第七章综合应用题1.7—将图的邻接表改成邻接矩阵
  14. 天勤第七章综合应用题1.9—非递归DFS遍历以邻接表方式存储的图

排序

  1. 排序–常见的几种排序方法及思想
  2. 排序–冒泡排序
  3. 排序–基于数组的直接插入排序
  4. 排序–基于链表的直接插入排序
  5. 排序–折半插入排序
  6. 排序–希尔排序
  7. 排序–简单选择排序
  8. 排序–简单选择排序递归版
  9. 排序–快速排序
  10. 排序–二路归并排序
  11. 排序–堆排序

以上部分的代码来自天勤数据结构和1800习题集,剩下的是我在其他地方看到记录的,大家可以根据自身需要,择取您薄弱的地方重点做一做,争取不留短板,不留遗憾。

你可能感兴趣的:(数据结构,C语言)