数据结构入门篇——什么是数据结构。

[复制链接]
发表于 2025-10-21 03:52:50 | 显示全部楼层 |阅读模式
一、引入



        工具是一种什么东西呢?是一种转化前言,我们须要熟食,我们要通过用火来将生肉烤熟。在这个过程中。我们要输入一个东西——生肉,通过工具——火的加工,从而得到我们的目标产物——熟肉。
将上面的例子和红字部门相类比一下就得到了:
        熟肉=火+生肉
        本日我们就来学学每一个步调不可或缺的东西之一——数据结构。
二、数据结构的界说


2.1、数据结构的界说:

        关于数据结构的界说,概括一下重要包罗两点:研究内容和根本概念。各人稍作相识就好了
研究内容: 

根本概念与术语:


2.2、数据结构的两个条理:

         2.2.1、逻辑结构:

                逻辑结构和他的名字一样,数据的储存是具有逻辑的,重要的范例分为:线性结构、非线性结构。而此中非线性结构又包罗了聚集结构、树结构和图结构。常见的线性结构重要有线性表、栈、队列、串、数组。
        2.2.2、储存结构:

                界说:数据对象在盘算机中的存储表现成为数据的存储结构,也成为物理结构。
                种别:序次结构、链式结构。
                数据的储存结构通常与数据在盘算机中的地点干系联。举个例子:
                数组的表现就是一种常见的序次储存结构,信赖各人在学习了数组之后会好奇,在界说数组的时间为什么[ ]中肯定要有常量来表现数组的巨细呢。实在这和你去食堂打饭一个原理。
                早上的时间你去食堂吃早饭,早饭供应的是包子,打饭大姨问你要几个,你得先估计你须要吃几个才够。当你确定命量后大姨才会给你分配对应的包子数目,而且大姨给你拿包子的时间肯定是从蒸笼的最上边按序次给你拿。你也没见过有大姨东拿一个、西拿一个的环境吧。

                数组的界说也是这个理。你得先告诉盘算机你要多大的空间,如许盘算机就会按序次给你分配空间。比如
  1. int arr[10];//定义数组arr
  2. int* a=&arr;//定义指针a,并初始化a的值为arr的首地址
  3. //若a=001,则arr[9]=010;
复制代码
        像这种每个空间的地点按序次分布的就叫序次结构。

而链式存储结构就须要借助其他帮忙了——指针。
                在班级中每个门生都有自己的学号,但是门生的座位并不是按照学号分列的,那么当老师按照学号点名的时间会是一种什么景象呢?
                正如其名字所说。每一个数据块都被一根链子连上了。而这跟根链子就是指针,我们只须要在学号为1的门生身上纪录好2的地点,在2的身上纪录好3的地点........如许当我们点到门生1的时间我们就可以通过门生1身上的地点找到门生2的位置。
                详细的样例看下图
细致观察下,这些数据是怎么被遍历的呢?
  1. #include <stdio.h>
  2. struct Link
  3. {
  4.     int data;
  5.     struct Link *next;
  6. };
  7.   //创建结构体,data表示学号,*next用于记录指针。由于它指向的是结构体数据类型,所以用了struct Link
  8. int main()
  9. {
  10.     struct Link link1 ={1,NULL};
  11.     struct Link link2 ={2,NULL};
  12.     struct Link link3 ={3,NULL};
  13.     link1.next = &link2;
  14.     link2.next = &link3;
  15.     link3.next = NULL;//用指针记录下一个数据块的首地址
  16.     printf("link1:%d link2:%d link3:%d\n", link1.data, link1.next->data, link1.next->next->data);
  17.     return 0;
  18. }
复制代码
        上述代码展示了链表的遍历。关于这些数据结构的实现,本文不发急弄明确,只要能明白链式结构的遍历方式就算有劳绩 。   
2.3、数据范例和抽象数据范例 : 

       当我们开始学习一种语言,我想我们起首学到的都是数据范例。
        常见的根本数据范例有:整形(int)、浮点型(float、double)、字符(char)、字符串(string)、布尔(bool)等。也包罗构造数据范例:数组、结构体、共用体、文件等。关于它们的详细先容,本文就不多赘述了。
        而抽象数据一样寻常指由用户界说的、表现应用标题的数学模子,以及界说在这个模子上的一组利用的总称,详细包罗三部门:数据对象、数据对象上关系的聚集以及数据对象的根本利用的聚集。

三、数据的运算


        末了一点就是数据的处理处罚,也叫做数据的运算,固然,这里就指出数据可以做出哪一些运算。详细的实现方式叫做算法。与本文的学习内容关系不大。那么直接上干货吧。
        实在简单的要死,就是最最最广泛的:增、删、改、查加个查找、排序。
但要留意一点:

四、总结


        话不多说,直接上图!

渴望通过本文的学习,你能明确数据结构的根本概念和逻辑。为后续的蹊径拨开云雾,大步向前!
        如果我的内容对你有资助,在下就厚着脸皮讨个点赞关注。如果你有更好的想法,还望留在品评区让我来参考学习。我将不胜感激并积极创作出更好的内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表