C语言编程数据结构基础详解小白篇

 更新时间:2021年09月17日 16:33:01   作者:Booksort  
这篇文章主要介绍了数据结构的基础,非常适合初学数据结构的小白,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家多多进步,早日升职加薪

介绍

数据结构的基本信息

在这里插入图片描述

数据:是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。如:字符串,实数整数。。。。
数据元素:是数据的基本单位,在计算机中通常被作为一个整体进行考虑与处理。如组成通讯录的每一个人的信息,数据元素可以完整的描述一个对象。
数据项:是组成数据元素的,具有独立意义的,不可分割的最小单位(也就是说,数据元素由诺干个数据项组成)。如,通讯录中每一个学生都是数据元素,而,描述学生的姓名,性别,年龄等,都是学生的数据项。
数据对象:性质相同的数据元素的集合,是数据的一个子集。只要是一个集合内的数据元素的性质一样,该集合都可以是一个数据对象。如,整数集和,是整数的数据对象。

数据结构

是什么

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

或者说,数据结构是带“一定结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系

数据结构
包括逻辑结构和存储结构

逻辑结构

逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的(是认为想象出来的的一种数据模型)

数据的逻辑结构有两大要素:1,数据元素;2,关系
数据元素是指可被计算机看为一个整体进行处理与考虑。
而关系是指数据元素之间存在的逻辑关系

通常有以下4类基本结构

1,集合结构

数据元素除了同属同一集合之外,再无其他关系(每个数据元素具有同一性质)

在这里插入图片描述

例如:集合结构应用时,可以每个班为一个集合,每个班中的学生则是数据元素,各个班的学生都是人,但每个学生的数据项各不相同。而各个班相比则更是两个集合。

2,线性结构

数据元素之间只存在一对一的关系。

在这里插入图片描述

例如:统计学生入学信息是按照其入学时间进行排列储存。
要想找到某个学生的信息,只能根据相互之间的时间关系,去遍历,去二分,去查找。

3,树结构

数据元素之间存在一对多的关系。

在这里插入图片描述

例如:古代封建制度里的皇帝管理六部,六部分管各个衙门机构。。。。

4,图结构或网结构

数据元素之间处在多对多的关系。

在这里插入图片描述

要想找到某个元素可以有多个路径或方法可以达到目的。

逻辑结构又分为线性结构和非线性结构,以上4种基本结构都属于非线性结构
看以下图表,增强记忆,理清思路。

在这里插入图片描述

存储结构

数据对象在计算机中的存储为数据的储存结构,也是物理结构,要映射到计算机中的物理内存中。将数据对象存储到计算机中要储存各数据元素,又要储存元素之间的逻辑关系。
在计算机中有两种储存方式:顺序储存和链式储存。

顺序储存结构

借助元素在存储器的相对位置来表示数据元素之间的逻辑关系。
即相当于,在内存中依次按地址储存。
例如:数组

在这里插入图片描述

链式储存结构

所有元素依次存放在一片连续的存储空间中,而链式存储结构无需占用一整块存储空间,但要利用指针来指明数据元素之间的关系。例如:链表。

在这里插入图片描述

抽象数据类型

根据实际问题,由用户定义的,解决应用问题的数据模型,以及在这个模型是的一系列操作。
例如:用结构体创建的结构体类型。
如有错误,烦请大佬指正
我目前水平不够,暂时未对抽象数据类型有过多认知,以后会补上。

以上就是数据结构基础详解小白篇的详细内容,更多关于C语言数据结构基础的资料请关注脚本之家其它相关文章!

相关文章

  • 基于一致性hash算法 C++语言的实现详解

    基于一致性hash算法 C++语言的实现详解

    在《基于一致性hash算法(consistent hashing)的使用详解》一文中已经介绍了一致性hash的基本原理,本文将会对其具体实现细节进行描述,并用c++语言对一致性hash进行了简单的实现
    2013-05-05
  • C++ STL中的容器适配器实现

    C++ STL中的容器适配器实现

    这篇文章主要介绍了C++ STL中的容器适配器实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Qt槽函数会被执行多次的问题原因及解决方法

    Qt槽函数会被执行多次的问题原因及解决方法

    本文主要介绍了Qt槽函数会被执行多次的问题原因及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • C++语法详解之封装、构造函数、析构函数

    C++语法详解之封装、构造函数、析构函数

    这篇文章主要介绍了C++语法详解之封装、构造函数、析构函数的相关知识,通过实例代码给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C++符号优先级(详细整理)

    C++符号优先级(详细整理)

    C++符号优先级,我详细整理了一下。需要的朋友可以过来参考下。希望对大家有所帮助
    2013-10-10
  • C语言实现实时钟表

    C语言实现实时钟表

    这篇文章主要为大家详细介绍了C语言实现实时钟表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 深入理解atoi()与itoa()函数的用法

    深入理解atoi()与itoa()函数的用法

    本篇文章是对atoi()与itoa()函数的用法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • VScode + keil开发环境搭建安装使用过程

    VScode + keil开发环境搭建安装使用过程

    这篇文章主要介绍了VScode + keil开发环境搭建及安装使用过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C++ 输入一行数字(含负数)存入数组中的案例

    C++ 输入一行数字(含负数)存入数组中的案例

    这篇文章主要介绍了C++ 输入一行数字(含负数)存入数组中的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 深入解析C++中的函数模板和函数的默认参数

    深入解析C++中的函数模板和函数的默认参数

    这篇文章主要介绍了深入解析C++中的函数模板和函数的默认参数,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09

最新评论