点击蓝字的小伙伴奖励酥鸡哦

苏世计算机考研,程序猿专属的学习分享社区

【声明:本文为原创文章,未经同意,严禁转载和抄袭,违者将追究其法律责任】

正文字2607,预计阅读7分钟

/ 写在前面的话 /

初试攻略,考研初试方法论都在这里。

相信大家在大学时候学习数据结构就已经很让人头疼的,现在考研还有这个,实在是让很多同学头疼,今天小苏写的这篇文章纯属干货,皆为数据结构精简知识点。希望帮助同学们快速了解数据结构这门课的核心知识点。

考研路上遇到的问题和对考研的疑问,或者你有希望我们创作的文章/内容/视频,可以随时联系小苏(微信:①lqll_1998 ②sushikaoyan)

sushi

我们将数据结构看成是数据处理过程中的一种分析、存储、组织数据的方法与逻辑,它要考虑数据之间的特性与相互关系。而在我们考研中,数据结构这门科目包括数据结构算法两部分,注意,前者数据结构是指一门课程,后者数据结构是指一个知识体。

知识体的数据结构分为八类:1、数组;2、链表;3、栈;4、队列;5、树;6、散列表;7、堆;8、图。

算法部分有排序和查找两大类。

一、数据结构(知识体)

(1)数组

数组有一维数组,二维数组,三维数组,N维数组。其实这里的数组还是比较简单的,因为数组跟我们线性代数里面的向量和矩阵很类似,操作和矩阵运算很像。

(2)链表

1.链表特性是各个数据在计算机内存中的位置是不连续的并且随机存放的。

2.链表分为单向链表,环形链表,双向链表。其中这三种链表都包含了如何建立该链表,如何插入新节点,如何删除节点。

3.一个单向链表节点是由两个元素组成,数据字段和指针。指针会指向下一个元素在内存中的地址。第一个节点是链表头指针,指向最后一个节点的指针为None,不指向任何地方。

(3)栈

1.栈是一组相同数据类型的组合,具有后进先出的特点,只能从栈的顶端存取数据。栈有5种基本的运算。

2.这里常考的有用栈来表示算术表达式;

3.前序法,中序法,后序法的求值;

4.中序法如何转换为前序法和后序法;

5.前序法和后序法如何转换为中序法。

(4)队列

1.队列是一种先进先出的有序线性表,栈只需要一个top指针指向栈的顶端,但是队列必须要使用front和rear两个指针分别指向队列的前端和末尾。

2.队列分为环形队列,双向队列,优先队列。

3.环形队列实际上可看成是队列Q(0 : n-1)的一维数组,同时Q(0)是Q(n-1)的下一个元素,指针front永远以逆时针方向指向队列种的第一个元素的前一个位置,rear则指向队列当前的最后位置。

4.双向队列是一个有序线性表,加入和删除可在队列的任意一端进行。无论是左右两端的哪一端队列,队首和队尾指针都是朝着队列中央来移动的。

5.优先队列是一种不必遵守队列先进先出特点的有序线性表,其中的每一个元素都赋予一个优先级,加入元素时可以任意加入,但有更高优先级者则更先输出。

(5)树

树绝对是计算机考研中的网红考点了,其中最网红的莫过于二叉树了。

1.二叉树与一般树有三个不同之处:树不可以为空集合,但是二叉树可以;树的度数为d≧0,但是二叉树的节点度数为0≦d≦2;树的子树间没有次序关系,二叉树有。

2.二叉树有先序遍历,中序遍历,后序遍历三种方式,再加一个层次遍历,

3.二叉树的遍历常考题型:

①能对任意一棵二叉树进行手动前序、中序、后序遍历;

②能将由前序+中序、后序+中序给出的序列还原成一棵二叉树;

③能将一个数学表达式用中序方法将其用二叉树画出来,并能写出其前缀(波兰式)、中缀、后缀(逆波兰式)表达出来;

4.二叉树的5个性质:

①在二叉树的第 i 层上至多有 2i-1 个结点(i≥1);

②深度为 k 的二叉树至多有 2k-1 个结点,(k≥1)

③对任何一棵二叉树T,如果其终端结点(叶子)数为n0,度为2的结点数为 n2,则 n0=n2+1;

④具有 n个结点的完全二叉树的深度为 log2 n1;

⑤如果对一棵有 n 个结点的完全二叉树(其深度为 log2 n1)的结点按性层序编号(从第1层到第log2 n1层,每层从左到右),则对任一结点 i(1≤i≤n)

5.二叉树的存储结构:

①了解顺序存储结构,只做了解;

②链式存储结构,重要,需要掌握,后面的算法都是基于此结构;

6.掌握二叉树转换为线索二叉树,树与二叉树的互相转化,森林与二叉树的互相转化。

7.霍夫曼树和平衡树也是很重要的考点,如何把一个含权值的链表转化为霍夫曼二叉树,如何把一个二叉查找树转换为平衡二叉树,这两个是常考的。

(6)散列表

1.散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。散列表很像python里的字典,一个key对应一个value。

2.哈希表是由数组+链表组成的,一个长度为n的数组中,每个元素存储的是一个链表的头结点。位置一般情况是通过hash(key)%len获得。

(7)堆

其实堆的知识点可以归结到二叉树,堆中某个节点的值总是不大于或不小于其父节点的值,堆总是一棵完全二叉树。这里常考的就是堆排序(完全二叉树的排序)

(8)图

1.图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

2.图可以分为有向图和无向图;亦或者简单图和多重图。简单图满足:不存在重复边,不存在点到自身的边。非简单图即为多重图。

3.图有四种数据表示法,邻接矩阵法,邻接表法,邻接复合链表法,索引表格法。时间复杂度为:邻接表:O(|V|+|E|),邻接矩阵:O(|V|^2)。

4.图的遍历包括深度优先遍历法,广度优先遍历法。

5.深度优先遍历首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探别的顶点,直至所有的顶点都被访问过。

6.广度优先遍历(BFS)有点类似于二叉树的层序遍历算法。从某个顶点 v 开始遍历与 v 邻近的 w1,w2,3...,然后遍历与 w1,w2,3...wi 邻近的点。

7.一个图通常具有不止一个生成树,有深度优先生成树和广度优先生成树,最小生成树是指在一个加权图中,找出从顶点A到顶B最低的路径成本。

二、算法部分

(1)排序

(2)查找

看完了数据结构的核心知识点,你有没有涨姿势~小苏今后还会对专业课知识继续分享,有什么疑问也欢迎在评论区和大家交流哦!

苏世学社旗下品牌,专注于计算机考研

计算机考研一手资讯,原创高质量干货

深度的学习分享丨咨询前辈丨个性化指导

你的一键三连,让我们的距离又近了一步

c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...相关推荐

  1. c++使用单向链表存储一组有序数据_数据结构笔试题基础

    第一章 数据结构与算法 一.算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法. 1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报. 2.算法的基本要素:算法中对 ...

  2. c++使用单向链表存储一组有序数据_《一起学习java和数据结构》系列-数组和链表...

    数组 数组是一个线性表数据结构.它用一段连续的内存地址空间,来存储一些相同类型的数据. 从上面的定义,我们不难看出几个关键词. 线性表:顾名思义,线性表就是数据排列成一条线的数据结构.每一个线性表只有 ...

  3. python全栈是什么_Python全栈数据工程师养成攻略 PDF 下载

    相关截图: 图书简介: 本书首先介绍了数据工程和Python语法,随后讲解如何获取和存储数据,并实现简单的静态可视化.文本作为一种极其重要的数据类型,也单独列出一章行讨论.之后读者将学习到关于Web建 ...

  4. 【ArcGIS小技巧视频教程】(1):GIS数据来源下载攻略

    无论是制图还是分析,我们都离不开数据,今天我们就为大家分享一些免费下载数据的网址及下载数据的方法,文末附视频教程. 这里我们为大家提供了一些免费获取数据的网站: (1)GIS数据下载网址大全:收集了常 ...

  5. 25q64存储多个数据_一篇文章看懂,存储虚拟化在不同用例中的实践与优势

    存储虚拟化是一种对物理存储资源进行抽象的技术,使其看起来像是一个集中的资源.虚拟化掩盖了管理内存.网络.服务器和存储中资源的复杂性. 存储虚拟化运行在多个存储设备上,使它们看起来就像一个单一的存储池. ...

  6. 向内存中连续存入数据_内存节省到极致!Redis中这个数据结构,值得每个程序员了解...

    在之前我们介绍了,Redis有五种基础数据类型,分别是String,Set,List,Hash与SortSet. 今天我们又学习了一个命令,我们可以使用DEBUG OBJECT key查询Redis中 ...

  7. SPM12 核磁数据预处理 傻瓜攻略

    写在最前:鉴于我自己脑子傻,请不要迷信这篇文章的方法的正确性,数据分析的方法真的很多,基于数据的差异可能在一些地方的设置或数据处理步骤都会有差异!也希望发现这篇文章哪里有错误或可以改进的大神可以评论指 ...

  8. 再见了数仓,阿里的数据湖建设攻略确实牛!

    随着信息化进程的加快,传统数仓越来越无法适应海量数据存储和分析的需求,天下苦数据仓库久矣! 只能存储结构化数据,无法采集存储非机构化数据 无法存储原始数据,所有数据须经过ETL清洗过滤 离线数仓的数据 ...

  9. bootstrap-table真实交互数据_博思远略:基于AI交互场景数据构建用户画像的几点思考...

    什么是用户,就是那些藏在每台电脑.手机.pad.智能watch屏幕背后的使用产品或服务恰如你我--有血有肉.有情绪.有想法.有阅历.有逻辑.有思考.固守某种习惯且独一无二.形形色色的人. 用户画像本质 ...

最新文章

  1. (转)修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)
  2. 2_2 递归与分治策略(分治法的基本思想)
  3. 3.1.2 vernam 代数密码
  4. 下边框_OPPO Find X2颜值有多高?超窄下边框+瀑布屏,看完大写的服气
  5. SAP物料帐下修改物料的价格
  6. Mysql清空表(truncate)与删除表中数据(delete)的区别
  7. sql oltp_内存中的OLTP系列– SQL Server 2014上的数据迁移指南过程
  8. Wavesequencer Hyperion for Mac(数字模块化合成器)
  9. Windows中安装ElasticSearch(单机+集群+Kibana)
  10. Makefile文件(一)_介绍
  11. 玩转华为ENSP模拟器系列 | 配置OSPFv3 ABR路由聚合示例
  12. java算法竞赛:StringBuilder更省空间更快速
  13. 使用云效 修改 layui 环境变量
  14. STM32的矩阵按键程序思路
  15. App测试的方法和思路有哪些?一篇文章告诉你答案
  16. 【Google Cloud】账单告警信息推送至第三方
  17. LeetCode-621. 任务调度器
  18. c语言坐标海伦公式,C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积...
  19. tensorflow 恢复网络 tensorboard显示
  20. 操作系统中颠簸(thrashing)解决办法

热门文章

  1. IIS7 配置 PHP
  2. JavaScript 匿名函数与闭包
  3. 用MATLAB将矩阵数据写入txt文件中,打开乱码原因
  4. C++ 用new 动态创建多维数组
  5. 纽约大学计算机工程专业课程,纽约大学计算机工程硕士专业介绍及课程要求
  6. python tcp服务器模板_python socket之tcp服务器与客户端示例
  7. oracle dbms调度程序,Oracle 调度程序作业( dbms_scheduler )(zt)
  8. linux中cat监控,Linux基本命令——cat、rev、head、tail
  9. java查询到更新之前的数据_Java对数据库的查询和更新操作详解
  10. 老年手机英文改中文_不服来战:“老年人才用9键!”