线性表

最简单的一种数据结构,具有相同类型的数据元素组成的序列。顺序表、链表是其两种简单实现。

备注:数组也可以算一种简单的线性表。

链表可以分为:带头结点的简单链表

不带头结点的简单链表静态链表

循环链表双向链表

限定增加和删除数据操作只能在线性表的末端进行,因此是一种受限的特殊线性表。

实现方式有:顺序栈

链栈

栈典型的特点是:数据“后进先出”,栈可以用来实现递归。栈数据结构的主要操作是出栈、入栈。

队列

限定增加数据元素在线性表的末端,删除数据元素在线性表的始端。

实现方式有:顺序队列

循环队列链队列

双端队列

队列典型的特点是:数据“先进先出”,队列使用常见是日常各种“排队”。队列的主要操作包括入队、出队。

数组

最常用最简单的数据结构。C语言内置数组结构,特点是长度固定,无法动态增加数组长度,数据元素在内存是顺序存放,可以使用数组下标直接访问。

数组典型使用在数学的矩阵运算处理上。

字符串

计算机很重要的应用是非数值对象的处理,也就是字符串的处理。字符串,就是由零或多个字符串组成的序列。字符串可以定长数组顺序表示、动态分配堆存储表示、块链表示。

字符串数据结构在文本处理、编程语言编译、搜索等非数值计算应用广泛。重要的应用算法是字符串的模式匹配算法。

树是一种非线性数据结构,描述一对多关系,例如组织架构、族谱等。数据元素分为父亲结点和孩子结点,一个父亲结点可以有多个孩子结点,但是一个孩子结点有且只有一个父亲结点。

树型数据结构常用有:二叉树、满二叉树、完全二叉树、线索二叉树、平衡二叉树。存储结构实现包括顺序存储、二叉链表、三叉链表等。其中二叉树数据结构最重要的操作是遍历,分为先序、中序、后序、层次遍历四种。

树型数据结构常用算法应用包括:最优二叉树、哈夫曼编码。

数据元素之间的关系是任意的,任意两个元素都可以有关系。图状数据结构可以分为有向图、无向图、完全图、网(边上带权的图)。

图的存储结构常用表示有:邻接矩阵、邻接表、十字链表、邻接多重表。图状数据结构重要操作是遍历,主要分为广度和深度优先遍历。

图状数据结构常用算法应用包括:最小生成树、最短路径。

查找表

查找表是同种数据元素的集合,数据元素之间没有关系,仅仅是属于同一集合。查找表主要操作是查询和检索。

查找表数据结构可以分为静态查找表、动态查找表、哈希表。

其中静态查找表包括:顺序表

有序表(折半查找)静态树表

索引顺序表

动态查找表包括:平衡二叉树

B树B+树

键树

哈希表:非常重要好用的数据结构,核心思想是将关键字和物理存储位置建立对应关系,直接根据关键字即可定位到数据。

排序算法

12个常用的排序算法,具体可以详见之前的系列学习文章。排序是各类数据结构通用的操作,数据进行排序后,方便查找和处理。

[C语言必学的12个排序算法:基础知识 (第0篇)]

总结:以上是C语言常用的数据结构,基本上都需要学习了解,特别是线性表、栈、队列是C语言初学者必须掌握的数据结构。接下来的文章将逐一给出C语言实现的可运行的代码实例,包括这些数据结构典型应用、常用算法实现,分享给大家一起学习,另外12个数据结构中的排序算法在前面的公众号已经学习过了,这里不再列出。

其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

c语言必背数据结构_C语言实现常用数据结构:简要一览(第1篇相关推荐

  1. 背口诀14天精通c语言pdf下载,C语言必背18个经典程序

    C语言必背18个经典程序 1./*输出9*9口诀.共9行9列,i控制行,j控制列.*/ #include "stdio.h" main() {int i,j,result; for ...

  2. c语言高亮字符,C语言必背18个程序+190例--语法高亮

    <C语言必背18个程序+190例--语法高亮>由会员分享,可在线阅读,更多相关<C语言必背18个程序+190例--语法高亮(111页珍藏版)>请在人人文库网上搜索. 1.C语言 ...

  3. c++ sort 从大到小排序_C语言必学的12个排序算法:堆排序(第7篇)

    题外话堆排序比之前的简单选择.冒泡算法.快速排序算法复杂一些,因为用到了树形数据结构,但是本文使用了数组实现完全二叉树,因此也比较简单.C语言初学者,可以简单了解其思想,具体的知识掌握可以参照数据结构 ...

  4. 单片机c语言基础知识,c语言必背100代码有哪些?

    我记得刚开始接触编程的时候,觉得太难了. 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响. 一个 ...

  5. c语言中专业英文词汇的意思,c语言必背专业英语词汇大全

    要想学好c语言,对于c语言方面的专业英语词汇的学习非常重要,那么现在就一起来学习一些必背的c语言专业英语词汇吧,希望能够帮到大家! c语言专业英语词汇 comment 注释 program comme ...

  6. c++ 快速排序_C语言必学的12个排序算法:归并排序(第8篇)

    题外话很多童鞋感受算法比较难度,的确,算法其实和C语言本身关系不大,算法是计算机科学家利用丰富的数学和算法设计知识研究出来,如今我们只需拿来主义,学习使用即可,当然这需要一定的努力过程. [C语言必学 ...

  7. 中常用的数据结构_C语言实现常用数据结构:基本概念(第0篇

    写在前面:为什么学习C语言数据结构 今天开始,我准备和一起分享学习C语言常用数据结构,这里不求事无巨细的掌握数据结构的方方面面,而是学习编程.考试等实际中常用的重要数据结构,这里以分享可以运行的代码为 ...

  8. python语言必背代码-Python入门必须知道的11个知识点

    Python被誉为全世界高效的编程语言,同时也被称作是"胶水语言",那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. ...

  9. 单片机c语言必背代码_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

最新文章

  1. 删除电脑里的空文件夹
  2. 微信路况会不会超越地图导航?
  3. Spring boot转发请求
  4. python 条形图_Python数据可视化:基于matplotlib绘制「堆积条形图」
  5. VTK:圆锥用法实战
  6. 基于ECI+FaaS构建游戏战斗结算服最佳实践
  7. mysql 返回随机行_从mysql数据库返回随机行而不使用rand()
  8. 指令打印与驱动打印随笔
  9. 数论 —— 线性同余方程
  10. openssl evp 对称加密(AES_ecb,ccb)
  11. PCL之在Debian10下配置pcl.1.9.1
  12. OpenGL基础34:帧缓冲(中)之附件
  13. GO语言学习之路14
  14. oracle查询一年的第几周,Oracle--计算某一日期为一年中的第几周
  15. 好用的mysql可视化工具_介绍一款免费好用的可视化数据库管理工具
  16. Oracle迁移到mysql字符集_oracle数据库字符集characterset迁移及变更系列一
  17. iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
  18. Quartus与Modelsim联合仿真ROM IP时输出波形一直为零的问题以及ROM配置仿真教程
  19. 问题xcodebuild failed with code 65解决记录
  20. 美国国防高级研究计划局(DARPA)组织管理运行机制分析

热门文章

  1. 微服务应用开发入门④服务网关
  2. FileReader读取文件的三种方式
  3. 〖Web全栈开发③〗—HTTP协议和静态web服务器
  4. 【强化学习与机器人控制论文 2】基于强化学习的五指灵巧手操作
  5. Unity-Tilemap 瓦片地图
  6. 如何理解假设检验中的假设设计?
  7. 【Java+MySQL】使用JDBC连接MySQL 8.0数据库
  8. 浙大PAT 1021. Deepest Root (25)
  9. 罐装红酒的开拓者——智利菲尔帝进军中国市场
  10. IO模型(阻塞,非阻塞,多路复用......)