《大话数据结构》读书笔记(一)

《大话数据结构》程杰 著

程序设计 = 数据结构 + 算法

什么是数据结构
  • 是互相之间存在一种或多种特定关系的数据元素的集合
  • 是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科
  • 按照视点的不同,分为逻辑结构物理结构
什么是数据
  • 描述客观事物的符号
  • 是计算机中可以操作的对象
  • 能被计算机识别,并输入给计算机处理的符号集合
    • 数值类型(整型、实型等,可以进行数值计算)
    • 非数值类型(声音、图像、视频等通过编码手段变成字符数据来处理)
什么是数据元素
  • 是组成数据的、有一定意义的基本单位
  • 在计算机中通常作为整体处理
  • 也被成为记录

比如,在人类中,什么是数据元素呀?当然是人啦!
畜类呢?牛、马、羊、狗、猪等动物当然就是禽类的数据元素。

什么是数据项
  • 一个数据元素可以由若干个数据项组成
  • 数据项是数据不可分割的最小单位

比如人这样的数据元素,可以有眼、耳、口、鼻、手、脚、嘴等这些数据项,也可以有姓名、年龄、性别、出生地址、联系电话等数据项,具体有哪些数据项,要视你做的系统来决定。不过我们在真正讨论问题时,数据元素才是数据结构中建立模型的着眼点。就像我们谈论一部电影时,是讨论这部电影角色这样的“数据元素”,而不是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。

什么是数据对象

  • 性质相同的数据元素的集合
  • 是数据的子集

什么叫性质相同呢,是指数据元素具有相同数量和类型的数据项,比如人都有姓名、生日、性别等相同的数据项。因数据对象是数据的子集,在实际应用中,在不产生混淆的情况下,我们都将数据对象简称为数据。

什么是结构
  • 现实世界中,不同数据之间不是独立的
  • 存在特定的关系
  • 将这些关系称为结构
  • 指各个组成部分互相搭配和排列的方式

比如分子结构,就是说组成分子的原子之间的排列方式。

什么是逻辑结构
  • 数据对象中数据元素之间的互相关系

逻辑结构的四种分类

  • 集合结构
  • 集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系
  • 各个元素是“平等”的,它们的共同属性是“同属于一个集合”,类似数学中的集合
集合结构
  • 线性结构
    • 线性结构中的数据元素之间是一对一的关系
线性结构
  • 树形结构
  • 数据元素之间存在一种一对多的层次关系
树形结构
  • 图形结构
  • 数据元素是多对多的关系
图形结构

逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系

什么是物理结构(也称存储结构)
  • 实际上就是如何把数据元素存储到计算机的存储器中,并正确反映数据元素之间的逻辑关系
  • 存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述
  • 存储结构形式:顺序存储链式储存

顺序储存结构

  • 是把数据元素存放在地址连续的储存单元里,其数据间的逻辑关系和物理关系是一致的
  • 说白了,就是排队占位,一个萝卜一个坑,都别插队
  • 数组就是这个结构
顺序储存结构

链式储存结构

比如银医院等地方,设置了排队系统,每个人去了,先领一个号,等着叫号,叫到时去办理业务或看病。在等待的时候,爱在哪在哪,可以坐着、站着,去外面溜达一圈,只要及时回来就行。你关注的是前一个号有没有被叫到,叫到了,下一个就轮到了。

  • 是把数据元素存放在任意的存储单元里
  • 这组存储单元可以是连续的,也可以是不连续的
  • 用一个指针存放数据元素的地址,通过地址可以找到相关数据元素的位置

逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。

链式储存结构
数据类型
  • 是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
  • 在C语言中,按照取值的不同,可以分类两类
  • 原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等
  • 结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的
抽象数据类型

抽象是指抽取出事物具有的普遍性的本质。它是抽出问题的特征而忽略非本质的细节,是对 具体事物的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必需的信息。

  • 抽象数据类型是指一个数学模型及定义在该模型上的一组操作
  • 抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关

一个数据类型定义了:一个数据对象、数据对象中各数据元素之间的关系及数据元素的操作。至于,一个抽象数据类型到底需要哪些操作,这就只能由设计者根据实际需要来定。**抽象数据类型体现了程序设计中问题分抽象和信息隐藏的特性。

总结回顾
数据结构
结构分类
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容