数据结构导论(一)

导读:在看书前,我对这本书的内容,是 这么想的:数据结构,那大概就是关于数据和结构的东西。而讲到数据,估计会说到数据类型,数据定义,数据存储等方面。然后在结构方面,就不是很清晰,没看书之前,用的是打遍天下无敌手的三大结构去猜的数据结构,即:顺序结构、选择结构、循环结构。

一、导图概述(第一遍)


结合自己之前对于这本书的猜测,在看完了书之后,我依然将其分为了三个部分:概论、数据和结构。

首先,在概论中,讲述了一些基础的术语,以及告诉我们为什么要分析数据结构,还有关于整本书的一个安排流程。所以说,这一章其实是最重要的一章,它是一个战略上的宏观指导,看了这一章,才明白所以然和之所以然,才能明白我们学什么和为什么学。尤其是最后有一个关于整本书的安排流程,可以帮助我们对于这本书进行一个初步的大体上的把握。

其实,是数据部分。这一部分和之前预想的有些出入,在这里并没有介绍预想中的数据类型,但介绍了集中数据结构,但相对于后续的树、图等,我将这一部分划分为数据,因为我认为栈和队列,以及线性表,都是一些简单的数据结构(相对于图和树),可以算是图和树结构的颗粒性数据。值得一说的是:排序。将数据以一定的结构分好之后,按什么顺序去存储,直接影响了其使用性能,所以要提高性能,考虑数据的结构、类型和排序规则是必不可少的事儿。

最后,就是结构部分,也就是对于简单数据结构的再组合,一种更深一点的结构。而其实查找表是一种运算,也就是我们常说的增、删、改、查这些东西。它是对于我们的数据的一些基本的操作。


二、导图概述(思考后)

前面说了一些自己关于这本书看之前的猜测,和看过之后的想法。但其实说的都是数据结构本身这一块知识,那么数据结构,它在整个软件工程过程中,在我们的应用中,又是扮演了什么样的角色呢?


我认为书中说的栈、队列、线性表,二叉树,图之类,其实还局限于逻辑模型这一层面上。而其存储结构,其实就是由逻辑模型转换为物理模型的一个过程。比如说,在二叉树中,它有其顺序存储结构,这一存储也就是我们在数据库系统原理中学到的关于三范式的应用,这样的存储,在其数据较多的情况下,是很费空间和损效率的。而其后说到的儿叉链表和三叉链表,它的左孩子指针、右孩子指针,其实就相当于主键、次键等功用。

而后,整个的数据,却又是根据问题得来,进一步优化。到最后能通过编码解决问题,所依赖的是经过一系列算法和排序整理好的物理结构的数据。

所以,数据结构,其实说的不是顺序、选择、循环这三个结构,我认为其描述的是逻辑、物理结构,其从原始数据—概念模型—逻辑模型—物理模型的描述。这一切都在为解决问题而服务,它是计算机解决问题的过程中很重要的一个环节,它的排序和算法,存储结构都将直接影响性能和功能。


三、个人感受

看完第一次,不经脑子,觉得它是新的,很难的。细细琢磨会儿,发现和数据库系统原理有很大的联系,也不算是新的。而且我们现在做的事儿好像都在分析着数据结构。书看完一遍,恐惧是没有了,信心大大的有。

转载于:https://www.cnblogs.com/hhx626/p/6010414.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于java的汽车维修保养智能预约系统论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?

每当我们在表之间添加外键约束并将记录插入子表中时,都会发生此错误。让我们来看一个例子。创建子表。mysql> create table ChildDemo-> (-> id int,-> FKPK int-> );创建第二个表。mysql> create table ParentDemo-> (-> FKPK int,-> N…

YIi2中checkboxOptions前选框的用法

这是checkboxOptions前选框的用法 use yii\grid\GridView; $this->registerJs(" $(#selection_all).click(function(){ $(input[nameselection_all]).click(); }); $(#delete_select).click(function(){ var selection $(#w0).yiiGridView(getSelectedRows); if(selec…

python顺序执行 toggle_pythonkivymd:如何使toggle_nav_drawer()函数工作?

我的kv代码有问题。我想用几个NavigationDrawerIconButtons创建一个MDNavigationDrawer。窗口会出现,但当我单击MDToolbar时,程序崩溃并显示此错误消息。在Traceback (most recent call last):File "C:/Users/path/to/my/file/main.py", line …

Angularjs+Nodejs图片上传

1.插件 (1) &#xff1a;angular插件 ng-file-upload (2) : nodejs插件connect-multiparty 2.html <input type"file" ngf-select ng-model"files" ngf-multiple"true" /> 3.配置 var app angular.module(fileUpload, [ngFileUpload]);可…

mysql 日志同步 数据不同步_Mysql互为主从问题--日志同步数据不同步

Mysql互为主从问题--日志同步数据不同步我搭建的是mysql互为主从 复制两台机器的mysql环境完全相同第一部分测试&#xff1a;B为master A为slave的同步测试在B上创建表lian&#xff0c;并插入数据mysql> create table lian (a int,b char(10));mysql> insert into lian (…

UVALive 4764 dp

DES: 这是一个新的游戏。给你一套牌、编号从1到100000.正常来说。你手中的牌和这次翻的牌是一样的&#xff0c;就会加一分。但是。如果是999的话。加三分。所以问你最大的分是多少。 貌似是简单的DP吧。&#xff08;DP菜鸟...再简单我也不会...T_T...&#xff09;于是...我看懂…

mysql数据库事务命令_MySql学习18----数据库事务---命令使用(02)

本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作。下一篇会讲述如何使用JDBC进行数据库的事务操作。事务是指数据库中的一组逻辑操作&#xff0c;这个操作的特点就是在该组逻辑中&#xff0c;所有的操作要么全部成功&#xff0c;要么全部失…

iOS 高效 Mac 配置

https://testerhome.com/topics/3045 https://support.apple.com/zh-cn/HT201236转载于:https://www.cnblogs.com/mobilefeng/p/4701469.html

壁式框架内力计算_剪力墙结构设计计算要点和实例

剪力墙计算第5章剪力墙结构设计本章主要内容&#xff1a;5.1概述结构布置剪力墙的分类剪力墙的分析方法5.2整体剪力墙和整体小开口剪力墙的计算整体剪力墙的计算整体小开口剪力墙的计算5.3联肢剪力墙的计算双肢剪力墙的计算多肢墙的计算5.4壁式框架的计算计算简图内力计算位移的…

Linux删除文件夹命令

Linux删除文件夹命令 linux删除目录很简单&#xff0c;很多人还是习惯用rmdir&#xff0c;不过一旦目录非空&#xff0c;就陷入深深的苦恼之中&#xff0c;现在使用rm -rf命令即可。直接rm就可以了&#xff0c;不过要加两个参数-rf 即&#xff1a;rm -rf 目录名字 删除目录、文…

concat合并的数组会有顺序么_javascript concat 数组与数组或数组与字符串的合并

concat 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回.concat()基本语法&#xff1a;array.concat(value1, value2, ..., valueN)concat()参数说明&#xff1a;参数名参数说明array原数组value1, value2, ..., valueN需要与原数组合并的数组或非数组值.conca…

C#调用mciSendString播放音频文件

mciSendString函数是一个WinAPI&#xff0c;主要用来向MCI&#xff08;Media Control Interface&#xff09;设备发送字符串命令。 一、函数的声明如下&#xff1a; private static extern long mciSendString(string command, //MCI命令字符串string returnString, //存放…

mysql 存json中文乱码怎么设置_json接口插入数据库中文乱码

现象&#xff1a;1. 数据库中文乱码控制台显示中文乱码加载的日志2016-08-28 16:00:42,894 org.nutz.dao.impl.DaoSupport$1.invoke(DaoSupport.java:174) DEBUG - JDBC URL --> jdbc:mysql://139.129.118.219:13306/CloudServer2016-08-28 16:00:42,989 org.nutz.dao.impl.…

[转]进程间通信 - ipcrm

ipcrm 命令删除一个或更多的消息队列、信号量集或者共享内存标识。 简介 ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ... 错误的用法 ipcrm {shm|msg|sem} id... 1.使用说明 ipcrm -M shmkey 移除用shmkey创建的共享内存段 ipcrm -m shmid 移除用shmid标…

python批量修改文件名为excel中指定名称_在Python脚本的帮助下,使用excelsh中的名称映射重命名文件夹中的文件名...

在一个文件夹中有许多CSV文件我想重命名。有一个excel工作表&#xff0c;其中包含要重命名为文件夹的文件名。在文件夹中的文件名为测试数据&#xff1f;30四月.csv在测试数据&#xff1f;20四月.csv在测试数据18四月.csv等等而excel工作表包含的名称为0.25-测试数据4月30日0.9…

sequelize连接mysql_Sequelize没有连接mysql

文件config / config.json{"development": {"username": "root","password": null,"database": "example","host": "example.sqlite","dialect": "sqlite"},"stage…

java开发微信公众平台备忘

简单记录下前段时间开发的电子书的 公众平台的一些备忘及开发心得经验等 eclipse的一些技巧: 1.ctrlshifto 自动添加必要import空间及移除无用import 项目备忘说明 1.struts配置 :resources->struts.xml 经验心得: 1.struts在前台显示后台属性&#xff1a;${属性名称}&#…

java初级程序员_为什么现在JAVA初级程序员要求这么高?

为什么现在JAVA初级程序员要求这么高&#xff1f;举个例子&#xff0c;在90年代&#xff0c;我们吃的是什么&#xff1f;有像现在每天没肉吃就吃不下饭的时候吗&#xff1f;那在90年代我们的编程技术又是什么样的&#xff1f;是不是垃圾的再垃圾不过了&#xff1f;那时候是不是…

html5晋级之路-css背景

css背景&#xff1a; css允许应用纯色作为背景&#xff0c;也允许使用图片来创建相当复杂的效果。 background-attachment 背景图像书否固定或随页面的其余部分滚动 background-color 设置元素的背景颜色 background-image 把…