线性结构基本概念【数据结构】F

线性表的概念:线性表是一种最简单的线性结构,线性结构是单个数据元素的有序结合

线性结构的基本特征为:

第一,集合中必存在唯一的一个第1元素,
第二,集合中必存在唯一的一个最后元素,
第三,除最后元素外均有唯一的后继,
第四,除第1元素之外,仅有唯一的前驱,
在这里插入图片描述
在这里插入图片描述
序偶关系:就是有顺序
在这里插入图片描述
在这里插入图片描述
尖括号带便两个数据之间是有顺序的,不能进行数据之间的调换的,是序偶关系的,圆括号代表的是两个之间是一组,没有顺序的
脚标是从1进行的,要注意进行区分
学习线性表要类比类进行比较,类具有成员变量以及成员方法,那么实现功能的是成员函数,也就是说具体的实现还是要靠后面的成员函数进行实现的,前面只是一个定义
在这里插入图片描述
我们要知道,ADT的灵活性体现在基本操作上面
数据对象以及数据关系在定义初期就已经确定好了,不可以随便进行改动,


数据对象,数据关系以及基本操作我们就可以理解成男女朋友之间的关系,对象对象,你就可以理解成表面的关系来进行记忆,一切的现象都是从表面一点一点的进行深入的
我们就要看一下类当中有哪些成员,包括成员函数变量以及成员方法,
在这里插入图片描述
其中的取地址为的就是可以对线性表进行修改操作,只有当我们传递一个地址的时候,才可以对他进行一次修改数据,方便我们后续对线性表修改,这也是取地址的原因,地址可以方便我们找到此函数在这里插入图片描述
对于地址是静态分配的线性表,我们不讨论线性表的销毁操作,
我们都知道静态分配的空间只有当main函数结束的时候,由系统进行回收,而动态分配的内存空间可以在程序执行的过程当中,由free函数进行回收,当线性表为空标的时候,我们的销毁操作其实就是使线性表不存在,但是并不是真正的清空线性表操作
作用:修改掉原线性表的数据以及状态,所以我们传递一个地址方便我们的主函数对拿到数据之后对数据进行一个处理再使用的操作
结果:销毁线性表
动态创建内存空间是对于数组进行提出的
在写代码之前要对数据进行先定义的,这是code对数据进行处理的严格性,是相对于c++6.0来进行说明的,中间是有语法错误的
对于。C文件来说所有的内存空间都是在程序执行之前就已经进行分配了,你可以大胆的想像,在你毕业之前你的工作就有人进行安排了,那你是多么的轻松,不能是中间再去找工作,这是部队的,这样程序就会出现错误,就像是你就会出现毛手毛脚的状况
main函数定义的变量是全程都有效的,因为main函数结束了,那么整个函数就已经结束了,对于形式参数而言的话,调用的函数一旦执行完毕,那么变量就失去了效果,内存空间就会被释放掉的
在这里插入图片描述
####系统分配的空间以及我们使用函数进行空间的分配有什么不同呢?
动态分配不是从系统当中进行分配的,而是从动态块中进行的
### 引用型操作的特点:是不修改线性表当中的内容
加工型:是可以修改的
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
综上是引用型的数据,实现的是对数据进行查看以及数据的返回调用啥啥的,不进行破坏,就像我们去KTV唱歌一样的,我们对房间的话筒使用,而不拿走,不破坏,没有实质性的操作
*********************************
加工型操作:
在这里插入图片描述
详细介绍在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
学习数据结构就是在学习积木的积木块,从小的出发地点开始,就是在学习使用工具,想办事情就要从小的地方学起来的

放大招:例题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原码和伪码的区别:
伪码更能看出程序员的思路来,而源码一般都是注重的是细节,是实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode589. N叉树的前序遍历

给定一个 N 叉树&#xff0c;返回其节点值的前序遍历。 例如&#xff0c;给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 思路&#xff1a;先放入自己&#xff0c;再依次遍历孩子。 /* // Definition for a Node. class Node {public int val;public List<Node> c…

顺序结构实现【数据结构】

虽然在数据结构当中是先出现的线性表&#xff0c;然后出现的是数组 一&#xff1a;线性表的顺序存储结构 顺序映象&#xff1a;用一组地址连续的存储单元依次存放线性表当中的数据元素 线性表的起始地址&#xff1a;线性存储第一个数据元素的地址&#xff0c;我们也称作是基地址…

leetcode590. N叉树的后序遍历

给定一个 N 叉树&#xff0c;返回其节点值的后序遍历。 例如&#xff0c;给定一个 3叉树 : 思路&#xff1a;先遍历所有孩子&#xff0c;再放入自己。 /* // Definition for a Node. class Node {public int val;public List<Node> children;public Node() {}public No…

链表的形式【F】

数据元素之间的关系在计算机中有两种表示方法: 顺序映象, 非顺序映象. 对应两种存储结构: 顺序存储结构, 链式存储结构 线性结构就是一种逻辑关系&#xff0c;方便我们对数据进行研究但是不考虑真实的存储结构 数据是什么&#xff1f; 数据是能够反应一定内容的一组数据类型的…

单链表的实现【数据结构】

思考&#xff1a; 1.是否能够将原来指针的方向改为向前指向呢&#xff1f; 2.是否能够有两个指针域的操作呢&#xff1f; 了解&#xff1a; 单链表是应用最广泛的一种形式&#xff0c;还有双向链表以及循环链表&#xff0c;这些都是要进行讨论的 结构体定义的是什么&#xff1f…

(详细图解)VS2017安装教程

VS 2017 版本同 15 版一样&#xff0c;细分为三个版本&#xff0c;分别是&#xff1a; 社区版&#xff08;Community&#xff09;&#xff1a;免费提供给单个开发人员&#xff0c;给予初学者及大部分程序员支持&#xff0c;可以无任何经济负担、合法地使用。企业版&#xff1a…

链表的代码实现【数据结构F】

单链表的特点&#xff1a;每次结点的分配都是动态进行分配的&#xff0c;melloc函数实现的功能是开辟一块新的内存空间&#xff0c;但是返回的是一个地址&#xff0c;只能是地址&#xff0c;没有别名的事情&#xff0c;那就有点难办了&#xff0c;这是一种间接的寻址&#xff0…

(图文详细)如何使用Code::Blocks运行c/cpp文件?

1) 新建源文件 打开 CodeBlocks &#xff0c;在上方菜单栏中选择 “文件 --> 新建 --> 空白文件”&#xff0c;如下图所示&#xff1a; 或者直接按下 Ctrl Shift N 组合键&#xff0c;都会新建一个空白的源文件&#xff0c;如下图所示&#xff1a; 在空白源文件中输入…

数据结构【插入操作具体代码的实现】

插入操作具体代码的实现 单链表delete的操作&#xff1a;

Linux GCC简明教程(编写c语言程序)

市面上常见的 Linux 都是发行版本&#xff0c;典型的 Linux 发行版包含了 Linux 内核、桌面环境&#xff08;例如 GNOME、KDE、Unity 等&#xff09;和各种常用的必备工具&#xff08;例如 Shell、gcc、VIM、Firefox 等&#xff09;&#xff0c;国内使用较多的是 CentOS、Ubunt…

解决VS'scanf':this function or variable may be unsafe.`(VS安全函数问题)

在 VS&#xff08;Visual Studio&#xff09;下编译C语言程序&#xff0c;如果使用了 scanf()、gets()、strcpy()、strcat() 等与字符串读取或操作有关的函数&#xff0c;有时候VS会报错&#xff0c;提示该函数可能不安全&#xff0c;并且建议替换为带有_s后缀的安全函数&#…

双向循环链表【数据结构】

单链表的缺点以及对单链表缺点的改进和双向链表的理解操作 双向循环列表的插入操作 线性结构是一种逻辑结构&#xff0c;顺序存储结构&#xff0c;链式存储结构

什么是编译器?(程序是怎么跑起来的)

我们平时所说的程序&#xff0c;是指双击后就可以直接运行的程序&#xff0c;这样的程序被称为可执行程序&#xff08;Executable Program&#xff09;。在 Windows 下&#xff0c;可执行程序的后缀有 .exe 和 .com&#xff08;其中 .exe 比较常见&#xff09;&#xff1b;在类…

Java 的内存管理机制是怎样的?

Java 的内存管理机制是怎样的&#xff1f;

队列【数据结构】

注意 我们的销毁队列是否能够成功取决申请空间的方式&#xff0c;动态申请出来的空间都是可以进行销毁的&#xff0c;对于静态的话是不能直接进行销毁的 ADT 相当于是c当中的类结构&#xff0c;是处理数据时&#xff0c;提前对数据进行一定的管理操作&#xff0c;就是将某一件事…