线性表的概念:线性表是一种最简单的线性结构,线性结构是单个数据元素的有序结合
线性结构的基本特征为:
第一,集合中必存在唯一的一个第1元素,
第二,集合中必存在唯一的一个最后元素,
第三,除最后元素外均有唯一的后继,
第四,除第1元素之外,仅有唯一的前驱,
序偶关系:就是有顺序
尖括号带便两个数据之间是有顺序的,不能进行数据之间的调换的,是序偶关系的,圆括号代表的是两个之间是一组,没有顺序的
脚标是从1进行的,要注意进行区分
学习线性表要类比类进行比较,类具有成员变量以及成员方法,那么实现功能的是成员函数,也就是说具体的实现还是要靠后面的成员函数进行实现的,前面只是一个定义
我们要知道,ADT的灵活性体现在基本操作上面
数据对象以及数据关系在定义初期就已经确定好了,不可以随便进行改动,
数据对象,数据关系以及基本操作我们就可以理解成男女朋友之间的关系,对象对象,你就可以理解成表面的关系来进行记忆,一切的现象都是从表面一点一点的进行深入的
我们就要看一下类当中有哪些成员,包括成员函数变量以及成员方法,
其中的取地址为的就是可以对线性表进行修改操作,只有当我们传递一个地址的时候,才可以对他进行一次修改数据,方便我们后续对线性表修改,这也是取地址的原因,地址可以方便我们找到此函数
对于地址是静态分配的线性表,我们不讨论线性表的销毁操作,
我们都知道静态分配的空间只有当main函数结束的时候,由系统进行回收,而动态分配的内存空间可以在程序执行的过程当中,由free函数进行回收,当线性表为空标的时候,我们的销毁操作其实就是使线性表不存在,但是并不是真正的清空线性表操作
作用:修改掉原线性表的数据以及状态,所以我们传递一个地址方便我们的主函数对拿到数据之后对数据进行一个处理再使用的操作
结果:销毁线性表
动态创建内存空间是对于数组进行提出的
在写代码之前要对数据进行先定义的,这是code对数据进行处理的严格性,是相对于c++6.0来进行说明的,中间是有语法错误的
对于。C文件来说所有的内存空间都是在程序执行之前就已经进行分配了,你可以大胆的想像,在你毕业之前你的工作就有人进行安排了,那你是多么的轻松,不能是中间再去找工作,这是部队的,这样程序就会出现错误,就像是你就会出现毛手毛脚的状况
main函数定义的变量是全程都有效的,因为main函数结束了,那么整个函数就已经结束了,对于形式参数而言的话,调用的函数一旦执行完毕,那么变量就失去了效果,内存空间就会被释放掉的
####系统分配的空间以及我们使用函数进行空间的分配有什么不同呢?
动态分配不是从系统当中进行分配的,而是从动态块中进行的
### 引用型操作的特点:是不修改线性表当中的内容
加工型:是可以修改的
综上是引用型的数据,实现的是对数据进行查看以及数据的返回调用啥啥的,不进行破坏,就像我们去KTV唱歌一样的,我们对房间的话筒使用,而不拿走,不破坏,没有实质性的操作
*********************************
加工型操作:
详细介绍:
学习数据结构就是在学习积木的积木块,从小的出发地点开始,就是在学习使用工具,想办事情就要从小的地方学起来的
放大招:例题
原码和伪码的区别:
伪码更能看出程序员的思路来,而源码一般都是注重的是细节,是实现