24考研备考408,整理了我在学习数据结构这门课程中的收获 。
正文开始:
线性表
描述 | 最基本的数据结构 |
表示形式 | 顺序表、链表 |
线性结构的特点:1.每一个数据元素的值不同,数据类型要一致
2.第一个数据元素没有前驱
3.最后一个数据元素没有后继
4.除了第一个和最后一个之外,其余数据元素有且仅有一个前驱和一个后继。
了解了线性表之后,我们来学习第一种线性表-------顺序表
顺序表的特点为,数据元素之间的逻辑关系和在计算机存储的物理关系是保持一致的。这就是这个特性,使得顺序表可以实现随机存取。
那么什么是随机存取呢?
随机存取指的是当存储器种的数据被读取或写入时所需要的时间与该数据所在的物理地址无关。
(分析~ 顺序表中数据元素之间的逻辑关系与物理关系保持一致,并且数据类型都是相同的,也就说每个数据元素所占有的存储空间是一样的。当你知道其中任意一个元素的地址时,其他数据元素的地址都可以立刻找到。例如:当第一个元素a0地址已知,那么第i个元素ai的地址为a0+存储空间乘i)
顺序表的劣势:不便于数据的插入和删除操作。因为当进行数据插入和删除操作的时候会引起大量数据元素的移动。
顺序表的基本操作
- clear():将一个已经存在的线性表置位空表
- isEmpty():判断线性表是否为空
- length():求线性表中的数据元素个数并返回其值
- get(i):读取并返回线性表中第i个数据元素的值
- insert(i,x):在线性表的第i个数据元素之前插入一个值为x的数据元素。
- remove(i):在线性表的第i个数据元素之前插入一个值为x的数据元素。
- indexOf(x):返回线性表中首次出现指定数据元素的位序号。
顺序表的难点:1.顺序表的插入操作insert(i,x)
2.顺序表的删除操作remove(i)
3.顺序表的比对查找操作indexOf(x)
非常抱歉,由于我的C++学习不太理想,本次数据结构合集里面所有的代码都是使用的Java语言,我使用的工具则是idea
如何使用代码语言来操作一个顺序表呢?我总结了三个步骤 ------
步骤一:先将表抽象出来,写一个Java接口,里面包含了对表的一系列基本操作(注意,这里的操作一定是抽象方法,因为我们建立的是一个接口,接口里面只允许存在抽象方法。)
步骤二:写一个Java类来实现刚刚写的Java接口,即是重写接口里面的抽象方法(即你想要对表操作的一个具体逻辑)
步骤三:写一个测试类,来判断你写的逻辑是否达到要求。
具体代码请看我的下一个博客代码run~谢谢查看啦,祝你学习愉快~