第零章 文章简介

考研数据结构一共有 绪论;线性表;栈、队列和数组;串;树与二叉树;图;查找;排序8个章节。每个章节都有一定量的代码和理解难度。本文章的目标是精炼并且直观的用自己的方式讲述考研所要求的各个数据结构,并且理解c语言数据结构的基本概念,分享我的一些解题思路等等。复习参考书目是王道数据结构23版单科书。如有错误还希望佬们指出,这几个月会陆续更新,希望能和大家一起进步。

第一章绪论

1.1 数据结构的基本概念

1.1.1基本概念和术语(前面都是一些理论,没啥好玩的)

1.数据

数据就是一切能够输入到计算机里面被计算机加工的原料。比如一些符号,大小写字母,阿拉伯数字。举个栗子ASCII表里面的每一个项都是数据

2.数据元素

数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,数据项是组成数据元素的基本单位。比如链表中的一个个结点就是数据元素,里面表示数据的data部分以及指向下一个结点的指针部分就是数据项。

3.数据对象

数据对象是具有相同性质的数据元素的集合,是数据元素的一个子集。比如所有整数,所有小写字母等。

4.数据类型

数据类型是一个值的集合和定义在此集合上面的一组操作的总称。

1)原子类型。值不能再分的数据类型。比如int char 这些。

2)结构类型。值可以再分解成若干成分的数据类型。比如自己定义的数据结构比如LNode。

3)抽象数据类型。抽象数据组织及与之相关的操作。比如在不同的处理器上面int的实现方法不同,但是int对于程序员而言是相同的,这里的int就是抽象数据类型。

5.数据结构

在任何问题中,数据都不是孤立存在的,他们之间存在某种关系,这种关系称之为结构,在c语言中用结构体实现各种数据结构。数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。

数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于逻辑结构,算法的实现取决于数据结构。

1.1.2数据结构三要素

1.数据的逻辑结构

逻辑结构是指数据之间的逻辑关系,即从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的,分为线性结构和非线性结构,如下图

2.数据的存储结构

就是数据在内存里面的的存储方式。

1).顺序结构,把逻辑上相邻的元素,物理存储上也相邻,这样以来,就能实现数据的随机存储,比如线性表的顺序存储方式——顺序表。但是这样不方便插入数据,每次插入需要挪动很多数元素。而且只能使用相邻的一整块数据单元,对内存的要求高。

2).链式结构,链式结构可以更方便的进行插入和删除操作,也可以使用不相邻的存储单元来保存数据元素,但是如果要查找链表中的某一个元素的话,只能从第一个元素开始往后查找,不能随机查找

3).在存储关键信息的时候,还建立附加的索引表,索引表中的每一项称之为索引项。索引项的一般形式是(关键字,地址)。其优点是检索速度快;缺点是检索表占用额外的存储空间,而且增加和删除数据时也要修改索引表,因此会花费较多的时间。

4).散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。优点是检索增加删除元素的时候都很快;缺点是如果函数没有设计好,那么就会出现元素存储单元的冲突,而解决冲突会增加时间的开销。

3.数据的运算

施加在数据上面的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能,运算的实现是针对存储结构的,指出运算的具体步骤。

举个栗子像插空法快速排序,快速排序的过程是首先选择首项为枢轴,然后再把所有比枢轴小的元素移动它的左边把大于枢轴的元素移动到它的右边,然后再从枢轴的左边一堆元素进行上述过程,直到枢轴的左右元素只有一个为止,排序结束。这是运算的定义。

而运算的实现是具体对于移动过程的具体描述,先设置一个变量pivot保存最左边的枢轴元素,此位置就变成了一个空,然后再到最右边找到小于枢轴的元素,如果找到那么则把他填充到枢轴原来的位置,

while(low<high&&a[high]>pivot] high--;a[low] = a[high];    //找到小于枢轴的元素并且放到空位

填充完之后,右边的这个被填充到左边的、小于枢轴的元素的位置就可以看成一个空,然后再返回左边找大于枢轴的元素,如果找到那么则把他填充到枢轴的位置,

while(low<high&&a[low]<pivot] low++;a[high] = a[low]; //找到大于枢轴元素并放在右边空位

填充完之后,左边的这个被填充到右边的、大于枢轴的元素的位置就也可以看成一个空,然后程序再重新执行到高位往低位查找比枢纽小的元素的操作,直到最终low=high,把枢纽放到中间点,完成一轮排序。这是运算的具体实现。一般来说,只有清晰的懂得了运算的定义,才能去考虑运算的具体实现,直接考虑运算的实现,会导致思维十分混乱,而无法实现目标结果。

数据结构 #考研#408相关推荐

  1. 【专栏必读】王道考研408数据结构万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图

    其他科目导航 [专栏必读]王道考研408计算机组成原理万字笔记(从学生角度辅助大家理解):各章节导航及思维导图 [专栏必读]王道考研408操作系统万字笔记(从学生角度辅助大家理解):各章节导航及思维导 ...

  2. 计算机考研408复试(面试)问题——数据结构

    计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.绪论 1.数据类型 原子类型.如 int.bool 结构类型.如struct{- ...

  3. 2021计算机专业考408的学校,2021考研:计算机考研408是什么?统考学校有哪些?...

    到底计算机考研408是怎么样的. 第一,什么学校考408,大部分985和少部分211 第二,难度怎么样,确实难度很大,我没考过其他工科,不知道是不是最难.但是我想说的是考过的大部分都说特别难,一般考8 ...

  4. 【专栏必读】王道考研408操作系统万字笔记(从学生角度辅助大家理解):各章节导航及思维导图

    其他科目导航 [专栏必读]王道考研408计算机组成原理万字笔记(从学生角度辅助大家理解):各章节导航及思维导图 [专栏必读]王道考研408数据结构万字笔记(有了它不需要你再做笔记了):各章节内容概述导 ...

  5. 【专栏必读】王道考研408计算机组成原理万字笔记和题目题型总结(从学生角度辅助大家理解):各章节导航及思维导图

    其他科目导航 [专栏必读]王道考研408操作系统万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图 [专栏必读]王道考研408数据结构万字笔记(有了它不需要你再做笔记了):各章节内容概 ...

  6. 数据结构考研大纲浅析

    ​ 本文仅对全国硕士研究生招生考试计算机科学与技术联考计算机学科专业基础综合数据结构考试大纲(也就是计算机考研408)进行简单的解读,专业课大纲每年的变化很小,本文以2021年的考研大纲为基础(新大纲 ...

  7. 2023王道数据结构考研习题汇总

    2023王道数据结构考研复习习题汇总目录 文章目录 2023王道数据结构考研复习习题汇总目录 第2章:线性表 2.2线性表的顺序表示-综合应用题(基础题1-9) 2.2线性表的顺序表示-综合应用题(4 ...

  8. 408 计算机组成,2018考研408计算机组成原理名词解释(6)

    2018考研408计算机组成原理名词解释(6) 2017-09-29 16:25 | 考研集训营 随着时代的快速发展,任何行业都离不开网络,导致计算机行业近几年非常的火热,使各大高校竞相争抢优秀人才, ...

  9. 计算机考研408专业课 思维导图

    计算机考研408,数据结构,计算机组成原理,计算机操作系统,计算机网络,思维导图分享: 随着学习的过程会逐渐的将个人总结发布出来,可以先点赞收藏关注一波,方便及时收到更新通知: 欢迎任何合理建议.

最新文章

  1. 2017,SAP向云看齐
  2. 使用xjc一秒钟生成您的JAXB类
  3. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵
  4. R循环有两个_R语言数据分析与挖掘(第九章):聚类分析(2)——层次聚类
  5. IDEA如何使用热部署方式启动项目?
  6. 机器人弹古筝图片_古筝维修:40年的牡丹牌古筝,动了个外科手术
  7. Bootstrap 第一天
  8. button组件 untiy_Unity 3D Button控件
  9. 机器学习实战练手项目
  10. RK3288 Android5.1 串口接收数据不是一次性收到问题
  11. 串口服务器采集需要通讯协议么,C2000-A2-SDX6000-CX1
  12. ios13全选手势_iOS13 (四)双指、三指手势
  13. android swf webview,android webview播放swf文件
  14. element UI table合并行合并列(整理)
  15. ESP8266给服务器发送数据
  16. 「鼎捷专家讲堂」曹永诚:数字化,拨开工厂云雾见青天
  17. Google收录(转)
  18. win10系统空闲一段时间后鼠标键盘没反应,屏幕卡死
  19. OA智能办公系统功能介绍
  20. 周界地址模块接线_入侵报警系统报警探测器和地址码模块的连接方法

热门文章

  1. 2-1、IOC思想以及实现
  2. 世界互联网大会,马云、马化腾、库克、李彦宏都说了一件事
  3. 小程序超出文字显示为省略号(代码简单的无话可说)
  4. mini210s启动出错
  5. 华为云14天鸿蒙设备开发-Day1环境搭建
  6. SIGIR‘21因果推断——不要把流行度偏差一棍子打死Causal Intervention for Leveraging Popularity Bias in Recommendation
  7. Metasploit基础
  8. 科学“干饭”,AI 营养师教你
  9. GPS软件接收机(1)——GPS信号捕获
  10. 拼多多商品数据如何通过api接口获取