数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学课。

计算机处理问题的过程,其实就是处理数据的过程,计算机解决一个具体问题的步骤[1]:

(1)分析问题,确定数据模型。

(2)设计相应的算法。

(3)编写程序,运行并调试程序直至得到正确的结果。

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

(Program = Data Structure + Algorithm)

数据结构(Data Structure) 是数据的组织结构,用来组织、存储数据。

算法(Algorithm) 就是解决问题的方法或者过程。

一、从数据中抽象出数据结构

处理问题需要从数据入手来分析,进而得到解决问题的方法,首先对数据结构化。

数据:是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母、符号和模拟量等的统称。比如在游戏当中你拥有的人物角色、装备、等级、金币等,这些都是数据,而且这些数据分为多种不同类型存储在计算机里。

数据元素:是指按某一标准对数据进行归类而划定的一个最小单位,它包含了一定的意义,可作为一个整体处理。比如人类,人就是数据元素。

数据项:是数据元素的单个成员项,也就是说一个数据元素是由若干个数据项组成的。比如人这个数据元素,可以有眼睛、耳朵等数据项,也可以有姓名、年龄等数据项。

多个有关系的数据项组成一个数据元素,众多的数据元素组成了大量的数据。

数据对象:我们处理分析数据的时候,一般会从大量数据中选取性质相同的有限个数据元素,组成一个集合,作为研究对象,称为数据对象。数据对象是性质相同的有限个数据元素的集合,它是数据的一个子集。如大写字母数据对象是集合C={'A','B','C',…,'Z'};1~100的整数数据对象是集合N={1,2,…,100}。

数据结构:是指所涉及的数据元素以及数据元素之间的关系,可以看作是相互之间存在着特定关系的数据元素的集合。

比如考试的排名,老师会按照成绩多少做成一个顺序排列的表格,从第一名到最后一名,按顺序排列下来。其实这就是一种数据结构,叫做顺序表。数据对象就是每个人的排名情况,包括名次、姓名、成绩等等。结构就是名次的顺序排列,每个人只有一个前名次和后名次(第一名和最后一名除外)。

数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。

二、数据结构的逻辑结构

逻辑结构是指数据元素之间的相互关系,它是独立于计算机的。通常分为四类结构:

集合:结构中的数据元素除了同属于一种类型外,别无其它关系。

线性结构:结构中的数据元素之间存在一对一的关系。定义了线性关系。

树型结构:结构中的数据元素之间存在一对多的关系。定义了层次关系。

图状结构:结构中的数据元素之间存在多对多的关系。定义了网状关系。

1.集合结构:单个数据元素之间没有任何关系(一盒糖)。

2.线性结构:定义了线性关系,数据元素存在一对一的相互关系。(排队)

3.树形结构:定义了层次关系,数据元素存在一对多的相互关系。(家庭成员)

4.图形结构:定义了网状关系,数据元素存在多对多的相互关系。(公交站)

三、数据结构的存储结构

也就是元素如何存储的,存储结构又称为物理结构。它是面向程序员的。存储结构分为顺序结构,链式结构,索引结构,散列结构。

1.顺序存储结构:借助数据元素之间的相对位置来表示元素之间的逻辑结构

2.链式存储结构:借助数据元素之间的元素的指针表示数组元素的逻辑结构

3.散列存储结构:顺序存储+算列

4.索引存储结构:顺序存储+索引

逻辑结构与存储结构关系图:

四、数据的运算[3]

1.数据的运算

是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更和排序等。例如,对于高等数学成绩表这种数据结构,可以进行一系列的运算:增加一个学生成绩记录、删除一个学生成绩记录、求所有学生的平均分、查找序号为i的学生分数等。

2.数据类型

指一组性质相同的值的集合及定义在此集合上的一些操作的总称。可将数据类型分为两类:

原子类型:不可以再分解的基本类型,整型、实型、字符型等。

结构类型:由若干个类型组合而成,可以再分解。

五、参考资料

[1]: https://baijiahao.baidu.com/s?id=1687302279709228125

[2]: 数据结构:八种数据结构大全_緑水長流*z的博客-CSDN博客_数据结构

[3]: https://blog.csdn.net/heyuchang666/article/details/49891635

少儿Python编程6-计算机数据结构和算法相关推荐

  1. 5岁儿童自学python编程-少儿python编程启蒙培训班-小孩学习编程去哪里好

    导语概要 为什么要学习少儿编程?少儿编程课程不仅能培养孩子逻辑思维能力,在整个编程过程中对孩子的创新能力.解决问题的能力.表达自己的能力.自学能力等方面都有很大的帮助,而这正是今日孩子需要拥有的必备技 ...

  2. 编程入门python语言是多大孩子学的-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  3. 少儿python编程培训-无锡江阴少儿Python编程培训一对一

    相关学习内容 伴随着企业的发展与成长,企业规模逐渐发展壮大给管理者提出了更高的要求,面对规模日益庞大的企业,要做到管理得体,上下沟通顺畅,管理命令得到贯彻与执行,就需要总结和提炼管理理念,把以往较为分 ...

  4. python编程是啥-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  5. python儿童编程培训班-重庆少儿Python编程培训班

    重庆童程童美少儿Python编程培训班欢迎您,童程童美在素质教育的深化和普及中,专注于培养3-18岁青少年STEAM教育的童程童美少儿编程,正在成为年轻父母们的共同选择. 在程序员的世界中,有句广为流 ...

  6. python儿童宣传-天津少儿python编程

    天津少儿python编程 来源:教育联展网 编辑:汪叽汪叽 发布时间:2019-10-31 导语概要 天津诚筑说机器人培训激发孩子无限潜能成长快人一步快速咨询近年来,编程教育已经逐渐从高校普及进入中小 ...

  7. python思想读后感_数据结构与算法:Python语言描述读后感1000字

    <数据结构与算法:Python语言描述>是一本由裘宗燕著作,机械工业出版社出版的平装图书,本书定价:CNY 45.00,页数:343,特精心从网络上整理的一些读者的读后感,希望对大家能有帮 ...

  8. 【1】少儿Python编程学习_Microbit展示名字

    上节课给大家分享了"什么是少儿Python编程",今天开始给大家展示如何用Python实际的跟小伙伴展示自己的名字.接下来我们一起来看一下啦. 1.Microbit在线编辑器 打开 ...

  9. 儿童python编程教程-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  10. python课程介绍-少儿Python编程课程的具体介绍

    以下是少儿Python编程课程的具体介绍,可供参考: 1.1.Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,初被设计用于编写自动化脚本(shell),随着版 ...

最新文章

  1. (C++)1040 有几个PAT
  2. echarts 点亮中国插件研究
  3. 【组队学习】【28期】R语言数据科学
  4. 阿里工程师告诉你,在性能测试的过程中会遇到哪些问题?
  5. 恭喜你们,碰到了问题
  6. 新手學python之新體驗
  7. python数独游戏源代码100行_python实现自动解数独小程序
  8. 你越努力,越没有领导潜力
  9. CPU位数、操作系统位数、应用程序位数浅析
  10. Zabbix 监控 MongoDB
  11. sort colors 三色排序
  12. ffmpeg 转码及多线程处理
  13. 课程设计:基于C52单片机的循迹小车
  14. viewport手机逻辑像素与物理像素原理(附完整手机各版本尺寸)
  15. 条件运算符的嵌套_条件运算符
  16. HNUST OJ 1997 琪露诺的完美算术教室
  17. android压力测试之monkey详解
  18. Android手机解网络锁软件,GalaxSIM解锁工具 GalaxSim Unlock
  19. Entering emergency mode. Exit the shell to continue.
  20. win10装的AutoCAD 2012版,右上角最小化不显示的解决办法

热门文章

  1. 3d最新网络游戏捕鱼3d
  2. cms php 带商城系统下载,开源免费PHP商城CMS系统集合
  3. Sata接口读取新硬盘读不出问题解决
  4. 美国亿万富翁悬赏百万解数学难题
  5. 两本 PDF + 一个插件:labuladong 刷题三件套正式发布
  6. 超级详细利用Vmware部置XP虚拟机
  7. Thinkphp 表名下滑杠处理
  8. 中兴通讯联合SWAN Mobile打通斯洛伐克首个5G视频电话
  9. asp毕业设计——基于asp+access的毕业生信息管理系统设计与实现(毕业论文+程序源码)——毕业生信息管理系统
  10. [附源码]java毕业设计网上拍卖系统