数据结构导论(一)

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

一、导图概述(第一遍)


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

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

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

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


二、导图概述(思考后)

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


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

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

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


三、个人感受

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

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

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

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

相关文章

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

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

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

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

UVALive 4764 dp

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

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

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

sequelize连接mysql_Sequelize没有连接mysql

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

SQL SERVER 2014 各个版本支持的功能

转自:https://technet.microsoft.com/library/cc645993 转换箱规模限制 功能名称EnterpriseBusiness IntelligenceStandardWebExpress with Advanced ServicesExpress with ToolsExpress单个实例使用的最大计算能力(SQL Server 数据库引擎)1操…

Android无法生成R文件的终极解决办法

R文件如果在clean项目(Project—>Clean)和 Fix Project Properties(如下图): 如果在第一步无法解决的的时候,那可能原因就是资源文件调用的错误,比如资源文件命名不规范,多余的资…

java awt 教程_JAVA教程 第五讲 AWT图形用户界面设计

5.1 用AWT生成图形化用户界面抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户界面组件&am…

从C# String类理解Unicode(UTF8/UTF16)

上一篇博客:从字节理解Unicode(UTF8/UTF16)。这次我将从C# code 中再一次阐述上篇博客的内容。 C# 代码看UTF8 代码如下: string test "UTF-8你"; //把字符转换为 byte[] byte[] bytearray_UTF8 Encoding.UTF8.GetBytes(test)…

python浅拷贝深拷贝

copy_listlist[:] 得到的是浅拷贝,即只能顶层拷贝,里面的嵌套不会复制一份。 a [0, [1, 2], 3] b a[:] a[0] 8 a[1][1] 9 请问现在a和b分别是多少? 答案:是 a 为 [8, [1, 9], 3],b 为 [0, [1, 9], 3]。 b的第二个…

中兴的一道笔试题

今天做了中兴的秋招题目,有一个题以前没有仔细想过,题目我有点儿记不清楚了,大概意思是这样的:有一个循环的单链表,给定该链表的尾指针比给定头指针好么? 我的思路:如下图,这是一个循…

Android SurfaceView实现静态于动态画图效果

本文是基于Android的SurfaceView的动态画图效果,实现静态和动态下的正弦波画图,可作为自己做图的简单参考,废话不多说,先上图, 静态效果: 动态效果: 比较简单,代码注释的也比较详细&…

数学概念——J - 数论,质因数分解

J - 数论,质因数分解Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit StatusDescription Tomorrow is contest day, Are you all ready? We have been training for 45 days, and all guys must be tired.But , you are…

java黄金分割点游戏_结对编程1——黄金点小游戏项目简介及需求分析

一、项目成员2018141461085龚泽楠2018141461012蔡铧荣二、项目名称黄金点小游戏三、项目简介游戏规则: N个同学( N通常大于 10 ),每人写一个 0~100 之间的有理数 (不包括 0或100) ,交给裁判算出所有数字的平均值然后乘以 0.618 (所谓黄金分割…

HDU 2242 考研路茫茫——空调教室

考研路茫茫——空调教室 Time Limit: 2000msMemory Limit: 32768KBThis problem will be judged on HDU. Original ID: 224264-bit integer IO format: %I64d Java class name: Main众所周知,HDU的考研教室是没有空调的,于是就苦了不少不去图书馆的…

java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...

上一个礼拜太忙了,今天开始恢复java的学习~目录1、面向过程——面向对象的区别传统的面向过程式编程是动作驱动的,数据和动作是分离的。面向对象编程的范式重点在于对象,动作和数据一起定义在对象中。面向过程的范式重点在于设计方法。面向对…

html5学习之路_003

html布局 使用<div>元素布局使用<table>元素布局<div>元素布局 <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>div布局</title><link rel"stylesheet" type&qu…

变量不合法的表达式JAVA_Java8中lambda表达式的语法,别人都会的,你还不会吗?「一」...

函数式编程函数式编程是一种编程方式&#xff0c;它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus)&#xff0c;λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 函数式编程是"结构化编程"的一种&#xff0c;主要思想是把运…

动手制作属于你自己的WIN PE3.0

最近想要更新公司的网Ghost系统&#xff0c;所以小研究一下win pe &#xff0c;在网上看见一个很不错的教程&#xff0c;在这里分享给大家&#xff01;并非原创&#xff0c;纯属转载&#xff01;&#xff01;O(∩_∩)O~天缘的作品&#xff0c;很是佩服这个哥们啊.....一、WINPE…

python图像处理模糊_Python+OpenCV图像处理之模糊操作

模糊操作是图像处理中最简单和常用的操作之一&#xff0c;该使用的操作之一原因就为了给图像预处理时减低噪声&#xff0c;基于数学的卷积操作均值模糊&#xff0c;函数 cv2.blur(image,(5,5))&#xff0c;这是一个平滑图片的函数&#xff0c;它将一个区域内所有点的灰度值的平…