前言

  由于自己已经大四,开始决定写这个博客,记录下自己每一天一点一滴的进步,希望自己的收获能与大家一同分享。数据结构这门课是我在大二上学期所学的,由于之前学习C语言的时候已经接触了常用的一些数据结构,加之自己以前也看过不少数据结构方面的书,因此学习起来比较轻松。马上要参加2012年的研究生入学考试,数据结构作为专业课的一门,就要重新开始复习了。因此通过记录这个博客,来每天更新自己的复习成果。这是一个系列,希望自己能够坚持下去。所用的教材是清华大学出版的《数据结构(C语言版)》。

基本概念

  数据(data):客观事物的符号表示。【CS】指所有能输入到计算机中并被计算机程序处理的符号的总称。【注】一般来说,现实中的数据输入到计算机后,都会被转化为计算机的数据表示。

  数据元素(data element):数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。【注】比如C语言中的结构体,C++中的类等等。

  数据项(data item):数据元素的组成单位。【注】比如结构体中的成员等等。

  数据对象(data object):性质相同的数据元素的集合,是数据的一个子集。【注】比如,在C语言中,一个数组的元素的全体就是一个数据对象。按照概念来讲,这个数组并不属于数据对象,因为它只是存储数据对象一种数据结构的组织形式(下面会讲到数据结构的概念)。

  数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合。存在以下四种基本结构(structure):(1)集合;(2)线性结构;(3)树形结构;(4)图状结构或网状结构。结构有逻辑结构和物理结构之分。逻辑结构是抽象角度来讲数据之间的关系,而物理结构又称为存储结构,是指数据结构在计算机中的实际表示。存在逻辑相关的数据不一定存在物理相关,十分明显的一个例子是链表。

  数据类型(data type):一个值的集合和定义在这个值即上的一组操作的总称。【注】看到它是不是很容易想起来类(class)的定义?

算法和算法分析

  算法(algorithm):对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。它具有以下5个重要特性:

    (1)有穷性。【注】必须能够结束。

    (2)确定性。【注】相同输入必须得到相同输出。

    (3)可行性。【注】算法操作必须通过已经实现的基本运算执行有限次来实现。

    (4)输入。【注】可以没有输入。

    (5)输出。【注】必须有输出。

  算法设计应该考虑的目标有:

    (1)正确性。

    (2)可读性。

    (3)健壮性。

    (4)效率与低存储量需求。【注】也许大家现在不注意存储量,对内存随意分配,有时候甚至对内存只申请而没有释放,这都是一种不好的习惯。

  在此小节中,比较重要的一个概念就是时间复杂度与空间复杂度,他们是衡量算法效率高低的重要指标。具体的不再介绍,如果对它们不了解,可以再次阅读课本上相关内容。需要提一点的是,在通常的计算机科学中,时间资源与空间资源往往“鱼与熊掌不可得兼”,所以当追求时间效率时,往往会牺牲大量的空间资源,但对于当前情况来说是可取的,因为硬件大大丰富的今天,人们不必为没有空间而感到捉襟见肘。当然,也可以通过牺牲时间来降低空间复杂度,但大多数情况下,这样的事情不会发生。毕竟时间的重要性要大于空间的重要性。

转载于:https://www.cnblogs.com/XjChenny/archive/2011/09/06/2169105.html

【数据结构复习】(1)绪论相关推荐

  1. HDU数据结构期末复习-1.绪论

    <数据结构>复习笔记 由HDU-STEA_banjiu修改于2021年1月9日 参考书目:严蔚敏<数据结构(第二版)>.王导论坛<数据结构考研复习指导>.HDU-S ...

  2. 南京邮电大学计算机网络专硕,南京邮电大学计算机专硕数据结构复习经验分享...

    南京邮电大学计算机专硕数据结构复习经验分享 今年数学考砸了,考完了一直没想碰考研的任何东西.今天不知道怎么的突然觉得还是有必要给后人留下点 作者 magicls 次阅读 2014-01-28 今年数学 ...

  3. KPM算法——数据结构|复习局|串|复杂模式匹配算法|二维数组解决KPM

    数据结构复习局--KPM算法 何为KPM? 事先规则 状态 匹配 dp--状态转移图 状态X 获得dp数组值 看看图再理解下 写在前面: 本文仅为作者个人学习记录,详细具体内容参考自知乎大佬labul ...

  4. 【数据结构复习】二叉树的遍历——从微软2014校园招聘说起

    [数据结构复习]是学习.复习常用数据结构系列文章.数据结构与算法密不可分,是程序实现功能的重要组成部分.优秀的数据结构可以提高算法的时间及空间效率.反之,将增加算法复杂度,甚至妨碍程序的正确执行. 一 ...

  5. 数据结构复习题(绪论)

    数据结构复习题(绪论) 绪论 选择题 填空题 简答题 判断题 绪论 选择题 线性结构中数据元素的位置之间存在( A )的关系 A.一对多 B.一对一 C.多对多 D.每一个元素都有一个直接前驱和一个直 ...

  6. 数据结构复习-基础、线性表、栈、队列、串

    数据结构复习笔记 作者: 收集于网络 第一章:概论 数据:指所有能被输入到计算机中,且能够被计算机识别.存储和加工处理的信息的载体,是计算机操作的对象的总称. 数据元素:数据的基本单位,有时一个数据元 ...

  7. CAUC算法与数据结构复习基本代码(一)

    算法与数据结构复习基本代码(一) 线性表 线性表 顺序表 单链表 双链表 栈 栈 顺序栈 链式栈 表达式求值 队列 顺序队列 链式队列 字符串 线性表 线性表 线性表的抽象数据类型定义 templat ...

  8. HIT 数据结构复习

    一些奇怪的概念 四种逻辑结构:集合结构.线性结构.树结构.图结构 存储结构:顺序存储.链式存储.索引(index)存储.散列(Hash)存储 坑! Q:为什么说线索二叉树是一种物理结构(存储结构)? ...

  9. 计算机考研的意义,2019计算机考研数据结构复习:重要意义

    2019考研复习正在紧张的进行中,为了更好的帮助同学们学习.新东方在线为大家整理了"2019计算机考研数据结构复习:重要意义"的相关信息,提醒各位考生要合理安排复习时间,做好复习规 ...

  10. 数据结构【一轮复习】---绪论(王道+天勤)

    文章目录 前言 笔记 题目原题 前言 ✨本篇为博主 数据结构[一轮复习] 的第一篇:绪论 本篇博客内容来自:

最新文章

  1. 1200亿次日均位置服务响应、20亿公里日均轨迹里程,百度地图发布新一代人工智能地图生态全景
  2. 错误:can't create 事务 lock on /var/lib/rpm/.rpm
  3. 中秋福利大放送!教你既可朝九晚五,又可诗和远方!
  4. 高级点的php书,深入理解php:高级技巧、面向对象与核心技术(原书第3版) 中文pdf扫描版[76MB]...
  5. Macaca-iOS入门那些事2
  6. [Visual Studio] VS2012调试时很慢的解决方案
  7. 经验模态分解(Empirical Mode Decomposition ,EMD)特征提取及其原理
  8. android手机 联系人迁移,有什么软件能快速将手机通讯录的联系人传到另一个手机上...
  9. 安卓设备设置 orientation 最简单的方法
  10. 用opencv将左右眼3D图片转换为红蓝3D图片
  11. java正则匹配ip_正则表达式 - 匹配 IP 地址
  12. 论文解读:6mA-Pred: identifying DNA N6-methyladenine sites based on deep learning
  13. 地理信息科学与计算机科学与技术专业,浙江大学地理信息科学专业怎么样
  14. Mac/Linux 定时运行命令行
  15. Stata实证:一键显著代码免费教程,拯救你的论文
  16. js中用xpath获取iframe中的元素
  17. 斗牛SEO工具报错:当前软件包缺少更新组件……
  18. ps不显示安装字体解决办法
  19. HTML5期末大作业:企业网页设计——摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  20. 使用java swing制作人机五子棋

热门文章

  1. selenium | TypeError:object of type ‘WebElement’ has no len()
  2. 3-unit1 IPv6网络的管理
  3. maven+springmvc+dubbo+zookeeper
  4. 从 Java 9 开始,Java 就华丽的转身为微服务了…
  5. 很慌!一次惊心动魄的服务器误删文件的恢复过程
  6. 【随笔】JVM核心:JVM运行和类加载
  7. 不到 10 个提升逼格的 Redis 命令
  8. JVM:常用调优命令
  9. map:根据 value 找 key ?
  10. Vue 之qs 使用详解