数据结构基本概念

本文介绍了数据结构的基本概念,包括数据元素、逻辑结构和存储结构,强调了数据结构对算法效率的影响。文章详细阐述了四种基本逻辑结构:集合、线性、树型和图状结构,并探讨了顺序存储和链式存储的优缺点。此外,还列举了数据结构常见的运算操作,如创建、删除、访问和排序等。
摘要由CSDN通过智能技术生成

一、什么是数据结构

1、数据结构的起源
  • 数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储、组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以带来更高的运行或存储效率。

  • 1968年,美国的高纳德(Donald E. Knuth)教授《基本算法》,开创了数据结构课程体系的先河。

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

    • 凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“算法+数据结构=程序”。

    • 这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”——一个公式展示出了程序的本质。

2、数据结构的基本概念
  • 数据(data):所有能输入到计算机中去的描述客观事物的符号
  • 数据项(data item):有独立含义的数据最小单位,也称域(field)
  • 数据元素(data element):数据结构的基本单位,也称节点(node)或记录(record)
  • 数据结构(data structure):数据元素和数据元素关系的集合
  • 算法(algorithm):是对特定问题求解步骤的一种描述,是指令的有限序列
#include <stdio.h>

typedef struct Student
{
    int id;         // 结构成员就是 数据项
    char name[20];
    char sex;
    short age;
    float score;
}Student;

int main(int argc,const char* argv[])
{
    Student stu = { // 结构变量 stu 是数据元素,负责给他初始化的叫数据
        10086,
        "hehe",
        'w',
        23,
        88.5
    };  

    // 数据结构
    Student stus[5] = { 
        {10010,"hehe1",'m',18,92},
        {10011,"hehe2",'w',18,91},
        {10012,"hehe3",'m',17,93},
        {10013,"hehe4",'w',18,96},
        {10014,"hehe5",'m',15,95},
    };  

    // 算法
    for(int i=0; i<5; i++)
    {   
        printf("%d %s %c %hd %g\n",
            stus[i].id,
            stus[i].name,
            stus[i].sex,
            stus[i].age,
            stus[i].score);
    }   
}
3、数据结构的三个方面
  • 数据的逻辑结构:元素之间具有什么关系。
  • 数据的存储结构:元素在内存中如何存储的。
  • 数据结构的运算:数据结构应具有的功能或擅长的功能。

二、数据元素之间的逻辑结构有四种基本类型

  • 集合:数据元素之间除了同属一个集合外没有其它关系。
  • 线性结构:数据元素之间存在一对一的关系,也被称为线性表,简称为表,最具代表性的就是数组、链表。
  • 树型结构:数据元素之间存在一对多的关系,如:族谱关系、组织关系。
  • 图状结构:数据元素之间存在多对多的关系,如:地铁、高铁线路图。

三、数据结构的存储方式

数据结构在计算机内存中的存储包括数据元素的存储和元素关系的表示。

元素之间的关系在计算机中有两种不同的表示方法,顺序表示和非顺序表示。

1、顺序存储结构

数据存储在一段连续的空间中,用数据元素在存储器中的相对位置来表示数据元素的关系。

  • 优点:随机访问方便,访问效率极高。

  • 缺点:插入删除不方便。

2、链式存储结构

结构中的数据元素存放在彼此独立的地址空间中,每个独立的地址空间称为节点。

在每一个数据元素中增加一个存放另一个元素地址的指针,用来表示数据元素之间的关系。

  • 优点:插入删除方便,空间利用率高。
  • 缺点:随机访问不方便,只能由前到后逐个访问。

四、逻辑结构和存储结构的关系

数据结构
顺序顺序表顺序树矩阵
链式链式表链式树邻接表(顺序+链式)

每种逻辑结构采用何种物理结构实现,并没有明确规定,通常根据实现的难易程度,以及在时间和空间方面的要求,选择最适合的物理结构,也不排除复合多种物理结构实现一种逻辑结构的可能。

五、数据结构的运算

  • 1、建立数据结构:create

  • 2、销毁数据结构:destroy

  • 3、从数据结构中删除一个元素:delete

  • 4、把一个元素插入到一个数据结构中:install

  • 5、访问数据结构中的元素:access

  • 6、修改数据结构中的元素:modify

  • 7、对数据结构中的元素进行排序:sort

  • 8、在数据结构中查找元素:query

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值