《数据结构》学习笔记一:绪论

个人看法:
数据结构的重要性对于码农而言就像盖房子的图纸,做饭的菜谱,没有它,也许也能盖得成房子,也能做的熟菜,但是质量如何就不敢说了。我们从大学的时候就把《数据结构》作为重要的基础课程来认真学习,但是真正听懂的,弄明白的,并不是很多。工作了几年,体会到它的重要性,决定回过头来再次抱起书本,系统的再次学习这门课程。我相信,一定会有不一样的感受和收获。闲谈少叙,书归正传。

一、本节解决问题:

1.什么是数据结构?

二、主要内容:

1.学习前的心里准备
2.一个小例子
3.起源
4.概念和术语
5.逻辑结构和物理结构
6.数据类型
7.总结

三、开始学习吧

1.学习前的心理准备

数据结构很重要我们知道了,我们学习这门课程的时候一定是抱着好好学,认真踏实的学习的心态的,但是呢,这中间也许会有一个个疑团,一道道障碍,别放弃,就对了!
学习数据结构就像过年回家一样,也许是做高铁,也许是飞机,也许是绿皮车,也许是大巴车,还可能是搭顺风车,兜兜转转只要到达目的地,就是成功了。

2.一个小例子

有个同学叫“小菜”,他刚入职场,做了一位码农。工作中,他们要做一个客服电话系统,他们领导给他一个任务就是完成客户排队模块的代码。
小菜觉得很容易啊,不就是排队吗,用数据库就能简单的解决啊。于是他设计了一张客户排队表,用自动递增的整型数字作为客户编号。来一个客户,在表的末尾插入一条数据。等系统一空闲,就从表中取出编号最小的客户提交,并删除该记录。写好后,小菜高高兴兴的提交了。
领导看完代码,把小菜叫到跟前,对他说:“你数据结构怎么学的啊?这种实时排队内存就能搞定,用什么数据库啊!”
小菜回去后,细细思考,决定用数组来实现,又怕数组溢出,还要考虑数组的长度。
小菜战战兢兢地提交了代码。
果然,没过多久,领导再次叫来了小菜,告诉他,只需要用数据结构的队列结构就能解决这个问题,回去好好想想,再重新写来。
小菜回去一宿没睡,仔细学习了“队列结构”,重新设计了实时排队的代码,提交了。这一次,领导跟小菜说:“小伙子,还不错。”

既然数据结构这么重要,那一定要好好学啊。

3.起源

《数据结构》是怎么来的?
1968年,美国有个叫做高德纳的教授写了一本书叫做《计算机程序设计艺术》,其中第一卷《基本算法》中,他系统的阐述了数据的 逻辑结构 和 物理结构还有数据操作,开创了《数据结构》的课程体系。从这一年起,《数据结构》正式诞生了。

4.概念和术语

1》数据
数据结构,顾名思义是“数据的结构”。那么就有必要知道什么是“数据”呢?

数据就是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别、输入的符号集合。例如:1,2,3等数字、“你好”,“hello”等文字符号,逗号,括号等标点符号、图片、音频、视频等。

思考:这些符号为什么能够被计算机识别呢?
个人思考:因为这些符号在计算机中有约定的编码,比如 a 的编码是65,编码之后的符号能够被计算机识别。计算机也是人设计的,它是根据人的设定工作的,你说 编码是65的是字符a,它就认为是a。

2》数据元素

数据元素:组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。
例如:人类中,小明,小华都是数据元素;
车类中,小汽车,大卡车,公交车都是数据元素。

3》数据项

数据项:一个数据元素可以由若干数据项组成。
例如:小明这个数据元素,他的眼睛、耳朵、手、脚、姓名、年龄、家庭住址等等都是数据项。其实就是类的属性。

4》数据对象

数据对象:性质相同的数据元素的集合,是数据的子集。
什么是性质相同呢?比如,人都有姓名、性别和出生日期这些相同的数据项。

我们把数据结构中的基本概念都介绍完了,那么到底什么是数据结构呢?

数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。

数据结构之所以难以理解,是因为它讨论的是“关系”,还不是一种关系,而是可能有多种关系。到底都有哪些关系呢?

5.逻辑结构和物理结构

按照视点的不同,我们把数据结构分为“逻辑结构”和“物理结构”。

逻辑结构:数据对象(性质相同的数据元素)中数据元素之间的互相关系。
1.集合结构
2.线性结构
3.树形结构
4.图形结构

集合结构:元素之间的关系是同在一个集合中。

image.png

线性结构:1对1的关系

image.png

树形结构:1对多的关系

image.png

图形结构: 多对多的关系

image.png

物理结构:也叫做存储结构,是指数据的逻辑结构在计算机中的存储形式。
注意:这里的存储主要指的是内存的存储,而不是像硬盘啊,光盘啊这些外部存储器的存储。
存储结构有两种:
1.顺序存储:例如数组
2.链式存储:例如链表等

什么是顺序存储?
就是把数据元素存放在连续的内存单元里面,其数据间的逻辑关系和物理关系是一致的。

image.png

(请忽略丑陋的文字)


image.png

什么是链式存储?
就是数据元素存储在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
这就像什么呢?就像上学时候早晨做早操站队,假如站成一队,每个人不可能把所有人的位置都记得,他只需要记住自己的前一个同学是谁就行了。而第一个同学知道自己是第一个,最后一个同学知道自己是最后一个,这样每次排队,大家都能找到自己的位置了。

image.png

注意:逻辑结构是面向问题的,物理结构是面向计算机的,其基本目标是将数据以及逻辑关系存储在计算机中。

6.数据类型

前面我们知道了什么是数据,而数据也是有类型的,这个类型是什么回事呢?就像每个人都有自己的姓氏一样,同一个类型的数据也有共同的特征。
为什么需要类型呢?
因为计算机的内存是有限的,我们声明了一个变量 a ,那么给它多大的空间存储它好呢?给太大了,浪费内存,给太小了,又怕不够,怎么办呢?就根据数据的特征,给他们不同的类型。比如,整型的数据,所占的存储空间是4位,一位是8个字节,,留出一个字节用作正负符号表示,整型的取值范围就是2的31次方减1.
打个比方说吧,大家都要住房子,都希望房子越大越好,但是呢,有的有钱,有的没钱,所以呢,房子也就有大的,有小的。
这里顺便提一下“溢出”是什么回事儿。
我们知道了,一个整型的数据占4位,一个浮点型的占8位(当然了,不同计算机也是不一样的),你把一个超过整型范围的浮点型数据硬要塞到放整型的房子里,那能放得下吗?放不下,不就漏出来了,叫“溢出”。
具体每种语言都有什么类型,这些类型是如何定义的,我们这里不做讨论。

7.总结

本节说了这么多,就是为了解决开头的一个问题:什么是数据结构。

数据结构是研究数据元素之间一种或者多种关系的集合。

程序设计与数据结构的关系:

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

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

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,864评论 2 89
  • 投射:今天下午突然下雨,决定去接女儿放学,希望我能够和女儿心有灵犀,在校门口相见。女儿一定会感觉到很温暖,很幸福,...
    桃儿妈妈阅读 161评论 0 1
  • [蝈蝈私房话] 这是一只见过大世面的蝈蝈,跟着我们浪迹过天涯,知道海边除了有清凉咸咸的海风,还有腐败恶臭的臭鱼烂虾...
    赵祥梅的心理话阅读 315评论 0 0
  • 他死了 亲朋为他立起一道墓碑 他们在墓碑的正面写下他的 名字 生卒日期 和故乡 在墓碑的背面写下—— 活着不是为了...
    央溪水阅读 173评论 0 2