数据结构——初学者学习笔记 【一】绪论

编程入门 行业动态 更新时间:2024-10-28 00:26:17

<a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构——初学者学习笔记 【一】绪论"/>

数据结构——初学者学习笔记 【一】绪论

文章目录

      • 一、什么是数据结构
          • 1、数据结构的起源
        • 2、数据结构的基本概念
        • 3、数据结构的三个方面
      • 二、数据元素之间的逻辑结构有四种基本类型
      • 三、数据结构的存储方式
        • 1、顺序存储结构
        • 2、链式存储结构
      • 四、逻辑结构和存储结构的关系
      • 五、数据结构的运算

现阶段我已经完成了c语言的初步学习,下一个阶段的学习计划是掌握运用数据结构。
计划总共分8章完成数据结构的学习,本章为第一章 :理解什么是数据结构!

一、什么是数据结构

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

更多推荐

数据结构——初学者学习笔记 【一】绪论

本文发布于:2024-02-17 17:12:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1694800.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构   绪论   初学者   学习笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!