数据结构(高级计算机程序设计的理论指导)

数据结构(高级计算机程序设计的理论指导)

数据结构:

    学习数据结构是为了在后续编程中应用数据工具,如果后期数据工具有缺陷,我们也可以工具进行改造(自定义数据结构)本次学习主要关于Java的数据结构,可以说数据结构是编程最重要的基本功没有之一。数据结构是基础。

线性表、栈、队列、(字符)串、数组、广义表、树、二叉树、图

对于每种数据结构会讲解其添加、更新、删除、查询、排序等操作的实现

数据结构与算法不可分

查询、排序一般单独拿出来讲解

数据(Data):

   描述客观事物的数值、字符以及能输入机器且能够被处理的各种符号集合

   数据的含义非常之广范,除了通常的数值数据、字符、字符串以外,声音、图像等一切可以输入计算机并能被处理的都是数据

数据项(Data item):

   最小数据单位(不可分割——具有原子性)

数据元素(Data element):

   数据的基本单位,是数据集合的个体,通常有若干个数据项组成,在计算程序中通常作为一个整体来进行处理

数据对象(Data object):

   是性质相同的数据元素的集合,是数据的子集  

      

数据结构(Date structure):

   是数据相互之间存在一种或多种特定关系的数据元素的集合

   是组织并存储数据以便有效使用的一种专门格式

   用来反映一个数据的内部构成,也就是一个数据有哪些成分

   数据结构、以什么方式构成、是什么结构

表示一组数据元素及其相互关系的数据结构有两种不同的表现形式

数据结构=逻辑结构+存储结构

数据结构=逻辑结构+存储结构+运算/操作(在存储结构上)

表现形式:

  1、数据结构的逻辑结构:数据结构的逻辑层面,指数据元素之间的逻辑关系(和现实无关)

     分类方式1:

        线性结构:线性表(典型的线性数据结构)、栈、队列、串及数组

            定义:有且只有一个开始节点和一个终端节点,所有的节点最多只有一个直接前驱和一个直接后驱

            特点:1、集合中必存在唯一的一个“第一元素”

                  2、集合中必存在唯一的一个“最后的元素”

                  3、除最后元素外,其他元素均有唯一的“后继”

                  4、除第一个元素外,其他元素均有唯一的“前驱”        

      非线性结构:树形结构、图形结构

            定义:一个结点元素可能对应多个直接前驱和多个直接后驱

     分类方式2:

      1集合结构

         a.确定性(集合中的元素是确定的)

         b.唯一性(集合中的元素互不相同,例如A{1,a},a!=1)

         c.无序性(集合中的元素没有先后之分,例如{3,4}{4,3}是同一个集合)

         集合结构中元素之间的关系很弱,仅是存在于同一个集合,所以数据结构中不对该结构进行研究

      2线性结构

         数据元素之间存在着“一对一”的数据结构

      3树状结构

         除了第一个数据元素以外每个数据有且只有一个直接前驱元素,

         但是可以有多个直接后驱元素,数据元素之间是“一对多”的数据结构

      4网络结构

         每个数据元素可以有多个直接前驱元素,也可以有多个直接后驱元素,

         特点是数据元素之间是多对多的联系

  2、数据结构的存储结构:将数据存储与计算机世界的物理层面

    1顺序存储结构:(连续的存储空间)将逻辑上相邻的节点元素存储在物理位置上相邻的存储单元中,节点之间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储结构是顺序存储结构,Java中可由数组来描述

       优点:节省存储空间,因为分配给数据的存储单元全部用来存放节点

       缺点:插入和删除操作时需要移动元素,效率较低

    2链式存储结构:(不连续的存储空间)数据存储是不连续的存储空间,每个存储节点对应一个需要存储的数据元素,每个节点由数据和指针组成,元素之间的逻辑关系通过存储节点之间的链接关系反应

       特点:a.比顺序存储结构的存储密度小

             b.逻辑上相邻的节点物理上不必相邻

             c.插入、删除灵活

             d.查找结点时比顺序存储慢

    3索引存储结构:建立索引节点信息,并建立附加的索引表来标识结点的地址

   比如图书、字典的目录

       特点:索引占用空间大,但是性能高(索引可以分为很多级)

    4散列存储结构:根据节点的关键字直接计算当前节点的存储地址

       特点:a.添加、查询速度极快

             b.主体是数组,再引出相关的链表

 

同一逻辑结构可以对应多种存储结构

同样的运算,在不同的存储结构中,其实现过程是不同的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.实验内容: 1) 建立学生档案管理的数据结构和存储结构; 2) 完成学生档案管理数据的基本操作; 3) 为提高管理效率,尝试设计较好的面向应用的查找存储结构,如二叉排序树。 2.实验任务: 设计一个学生档案管理信息系统,管理的学生信息包括学号、姓名、性别、高数成绩、英语成绩、大学物理成绩;要求可对学生档案信息进行浏览、增加、修改、删除和查找操作;能够依据不同的检索条件进行查找. 2 隐式图的搜索问题 1. 实验内容: 1) 对九宫重排问题,建立图的启发式搜索求解问题的方法; 2) 编写九宫重排问题的启发式搜索求解程序。 2. 实验任务: 在3х3九宫棋盘中,放置数码为1~8的8个棋子,棋盘中留有一个空格,空格周围的棋子可以移动到空格中,从而改变棋盘的布局。根据给定初始布局和目标布局,求解如何移动棋子才能从初始布局到达目标布局,找到一种最少步骤的移动方法。 3 可视化界面的文本文件操作 1. 实验内容: 1).通过对可视化开发环境的实用,实现对文本文件编辑器的设计。 2).通过键盘实现对文本文件进行创建、插入、删除、修改、存储等操作。 2. 实验任务: 设计一个具有可视化界面的全文本编辑器,通过对键盘操作可实现对文本进行显示、插入、修改、删除、查找、存储等操作。实现全文本编辑器的基本功能。具体要求如下:  具有图形菜单界面;  能正确显示文本总行数。(行数不少于5行,每行字符数不少于80个字符);  可正确读取,保存文本;  能实现简单的文本处理功能  查找:查找文本中的字符串,显示其出现的行数,列数及总共出现次数  替换(等长,不等长):对文本中的文本实现等长及不等长替换  插入(插串,文本块的插入):插入一行或在具体行号列号处插入文本  删除:删除一行,删除某一行、某列,定长的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值