数据结构的理解及介绍

本文介绍了数据结构的基础概念,包括数据、数据项、数据元素和数据结构的定义,重点讲述了逻辑关系(集合、线性、树形、图型)与存储关系(顺序、链式),以及数据结构的创建、销毁等关键运算,并以顺序表和链式表为例进行实现解析。
摘要由CSDN通过智能技术生成

前言

数据结构的理解及介绍


一、什么是数据结构?

1、数据结构的起源
      1968年,美国高德纳教授,《计算机程序设计艺术》的第一卷《基本算法》的出版,开创了数据结构和算法的先河。
数据结构是一门研究数据之间关系和操作的学科,而非计算方。
数据结构+算法=程序,沃斯凭借这个观点写的论文,获得图灵奖,这句话展示了程序的本质。
2、数据结构的基本概念
      数据:所有能够输入到计算机中,能够被程序处理的描述客观事物的符号。
      数据项:有独立含义的最小单位,也叫做域。【结构的成员项】
      数据元素:组成数据的,有一点意义的基本单位,也叫做节点、记录。【结构变量】
一个数据元素由若干个数据项组成【结构变量】
       数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
       算法:数据结构所具备的功能、解决特定问题的方法
3、数据结构的三个方面
      数据的逻辑关系
       数据的存储关系
      数据结构的运算

二、逻辑关系和存储关系

数据的逻辑关系:
集合: 数据元素同属于一个集合,但元素之间没有任何关系。
线性结构: 数据元素之间存在一对一的关系(表)
树形结构: 数据元素之间存在一对多的关系(树)
图型结构: 数据元素之间存在多对多的关系(图)
数据的存储结构:
顺序存储: 数据元素存储在连续的内存中,用数据元素的相对位置来表示关系

优点:支持随机访问、访问效率高、适合查找数据。
缺点:空间利用率低、对内存的要求高、插入、删除不方便

链式存储: 数据元素存储在彼此独立的内存空间中,每个数据元素中增加一个数据项用于存储其他元素的地址,以此来表示数据元素之间
的关系。
优点:空间利用率高、插入、删除方便、适合频繁的增删数据
缺点:不支持随机查找、只能从前到后逐个访问

逻辑结构于存储结构的对应关系:
表 顺序 链式
树 链式 顺序
图 顺序+链式
每种逻辑结构采用什么物理存储方式没有明确的规定,通常根据实现的难易程度以及空间、时间的要求,来选择最合适的物理存储结构

三、数据结构的运算

1、建立数据结构 create
2、销毁数据结构 destory
3、清空数据结构 clean
4、数据结构排序 sort
5、插入元素 insert
6、删除元素 delete
7、访问元素 access
8、修改元素 modify
9、查询元素 query
10、遍历数据结构 show print ergodic

四、顺序表和链式表的实现

顺序表:
      数据项:
            存储元素的内存首地址
            表的容量
            元素的数量
       运算:
       创建、销毁、清空、插入、删除、访问、查询、修改、排序、遍历
       注意:
      1、不要越界
       2、时刻保持元素的连续性
优点:支持随机访问,修改、访问、排序的效率比较高,大块的连续内存不容易产生内粗碎片
缺点:对内存要求比较高(内存连续),插入、删除元素时不方便、效率低
      链式表:
            节点的数据项:
             数据项:可以是若干个各种类型的数据项
             指针域:指向下一个节点

由若干个节点通过指针域连接在一起,形成链式表

不带头节点:第一个节点的数据域是存储的是有效的数据
添加、删除时有可能会改变第一个节点的指针指向,参数需要传递二级指针,而且删除第一个节点时,还需要额外处理

带头节点的:第一个节点不使用,仅仅只是用来指向第一个数据域有效的节点
注意:操作需要从第二个节点(也就是第一个有效数据节点)开始
注意:下标从第一个有效数据节点开始


总结

以上,有错误,还请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值