【数据结构复习】(1)绪论
前言
由于自己已经大四,开始决定写这个博客,记录下自己每一天一点一滴的进步,希望自己的收获能与大家一同分享。数据结构这门课是我在大二上学期所学的,由于之前学习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)绪论相关推荐
- HDU数据结构期末复习-1.绪论
<数据结构>复习笔记 由HDU-STEA_banjiu修改于2021年1月9日 参考书目:严蔚敏<数据结构(第二版)>.王导论坛<数据结构考研复习指导>.HDU-S ...
- 南京邮电大学计算机网络专硕,南京邮电大学计算机专硕数据结构复习经验分享...
南京邮电大学计算机专硕数据结构复习经验分享 今年数学考砸了,考完了一直没想碰考研的任何东西.今天不知道怎么的突然觉得还是有必要给后人留下点 作者 magicls 次阅读 2014-01-28 今年数学 ...
- KPM算法——数据结构|复习局|串|复杂模式匹配算法|二维数组解决KPM
数据结构复习局--KPM算法 何为KPM? 事先规则 状态 匹配 dp--状态转移图 状态X 获得dp数组值 看看图再理解下 写在前面: 本文仅为作者个人学习记录,详细具体内容参考自知乎大佬labul ...
- 【数据结构复习】二叉树的遍历——从微软2014校园招聘说起
[数据结构复习]是学习.复习常用数据结构系列文章.数据结构与算法密不可分,是程序实现功能的重要组成部分.优秀的数据结构可以提高算法的时间及空间效率.反之,将增加算法复杂度,甚至妨碍程序的正确执行. 一 ...
- 数据结构复习题(绪论)
数据结构复习题(绪论) 绪论 选择题 填空题 简答题 判断题 绪论 选择题 线性结构中数据元素的位置之间存在( A )的关系 A.一对多 B.一对一 C.多对多 D.每一个元素都有一个直接前驱和一个直 ...
- 数据结构复习-基础、线性表、栈、队列、串
数据结构复习笔记 作者: 收集于网络 第一章:概论 数据:指所有能被输入到计算机中,且能够被计算机识别.存储和加工处理的信息的载体,是计算机操作的对象的总称. 数据元素:数据的基本单位,有时一个数据元 ...
- CAUC算法与数据结构复习基本代码(一)
算法与数据结构复习基本代码(一) 线性表 线性表 顺序表 单链表 双链表 栈 栈 顺序栈 链式栈 表达式求值 队列 顺序队列 链式队列 字符串 线性表 线性表 线性表的抽象数据类型定义 templat ...
- HIT 数据结构复习
一些奇怪的概念 四种逻辑结构:集合结构.线性结构.树结构.图结构 存储结构:顺序存储.链式存储.索引(index)存储.散列(Hash)存储 坑! Q:为什么说线索二叉树是一种物理结构(存储结构)? ...
- 计算机考研的意义,2019计算机考研数据结构复习:重要意义
2019考研复习正在紧张的进行中,为了更好的帮助同学们学习.新东方在线为大家整理了"2019计算机考研数据结构复习:重要意义"的相关信息,提醒各位考生要合理安排复习时间,做好复习规 ...
- 数据结构【一轮复习】---绪论(王道+天勤)
文章目录 前言 笔记 题目原题 前言 ✨本篇为博主 数据结构[一轮复习] 的第一篇:绪论 本篇博客内容来自:
最新文章
- 1200亿次日均位置服务响应、20亿公里日均轨迹里程,百度地图发布新一代人工智能地图生态全景
- 错误:can't create 事务 lock on /var/lib/rpm/.rpm
- 中秋福利大放送!教你既可朝九晚五,又可诗和远方!
- 高级点的php书,深入理解php:高级技巧、面向对象与核心技术(原书第3版) 中文pdf扫描版[76MB]...
- Macaca-iOS入门那些事2
- [Visual Studio] VS2012调试时很慢的解决方案
- 经验模态分解(Empirical Mode Decomposition ,EMD)特征提取及其原理
- android手机 联系人迁移,有什么软件能快速将手机通讯录的联系人传到另一个手机上...
- 安卓设备设置 orientation 最简单的方法
- 用opencv将左右眼3D图片转换为红蓝3D图片
- java正则匹配ip_正则表达式 - 匹配 IP 地址
- 论文解读:6mA-Pred: identifying DNA N6-methyladenine sites based on deep learning
- 地理信息科学与计算机科学与技术专业,浙江大学地理信息科学专业怎么样
- Mac/Linux 定时运行命令行
- Stata实证:一键显著代码免费教程,拯救你的论文
- js中用xpath获取iframe中的元素
- 斗牛SEO工具报错:当前软件包缺少更新组件……
- ps不显示安装字体解决办法
- HTML5期末大作业:企业网页设计——摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
- 使用java swing制作人机五子棋
热门文章
- selenium | TypeError:object of type ‘WebElement’ has no len()
- 3-unit1 IPv6网络的管理
- maven+springmvc+dubbo+zookeeper
- 从 Java 9 开始,Java 就华丽的转身为微服务了…
- 很慌!一次惊心动魄的服务器误删文件的恢复过程
- 【随笔】JVM核心:JVM运行和类加载
- 不到 10 个提升逼格的 Redis 命令
- JVM:常用调优命令
- map:根据 value 找 key ?
- Vue 之qs 使用详解