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

计算机处理问题的过程,其实就是处理数据的过程,计算机解决一个具体问题的步骤[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. Linux DHCP原理与配置
  2. sw接口是什么意思啊_为什么有些任务栏上的按钮一点就消失了
  3. redis-数据类型-string类型
  4. 如何才能招到马云这样的人才?海尔张瑞敏这样说...
  5. ANDROID AIDL 1
  6. 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
  7. mysql 100w 查询耗时4秒_MySql百万数据0秒筛选查询
  8. tomcat启动成功并能运行项目,但无法显示那只小猫
  9. 电脑桌面变窄屏,两端为黑色
  10. 300多张精美京剧脸谱,收藏~~
  11. mina自定义编解码
  12. 打印文字一边清晰而另一边不清晰的解决方法
  13. linux多字节错误,在Linux中解压缩时遇到多字节字符的问题
  14. CRNN论文翻译——中英文对照
  15. 当工厂走出“工厂”,直营店也不止于“店”
  16. r 语言ylim = c(0 1),小白R语言数据可视化进阶练习一
  17. win10+1050ti+CUDA9.0+cudnn9.0的tensorflow-gpu环境搭建
  18. 如何快速开发一个网站
  19. 【前端领域高频笔试面试】—— JavaScript高级相关
  20. 自考基础会计学可以带计算机吗,自考《基础会计学》怎么过?

热门文章

  1. 牛客 郊区春游 状压+最短路
  2. 文件系统之重新安装系统、如何新增一块盘
  3. 【目标检测】小目标检测问题及解决方法
  4. 什么是RTOS?RTOS与普通操作系统的区别
  5. 小米笔记本粉丝感恩狂欢趴【慎入!!】
  6. java爬取网易云歌单_爬虫爬取网易云歌单
  7. 计算化学领域的黑科技
  8. 秒 毫秒 微秒 纳秒 皮秒。。时间单位换算
  9. Oulipo(欧力波)(经典kmp模板题) HDU-1686
  10. SpringBoot多表联查